[C言語]文字列を改行や区切り文字で配列に!文字数や1文字ずつの分割配列についても

[C言語]文字列を改行や区切り文字で配列に!文字数や1文字ずつの分割配列についてもC言語
広告

C言語において文字列の操作はプログラミングの基本です。

本記事では初心者向けにC言語を使用して文字列を1文字ずつ2文字ずつ分割し配列にする方法、

改行や区切り文字を利用して配列にする方法、さらには指定文字数で配列にする方法について解説します。

基本的な手法を分かりやすく説明しますのでぜひ実践してみてください。

広告

文字列を1文字ずつ分割して配列にする

C言語において、文字列を1文字ずつ分割して配列にするには、ループを使用します。

以下はその例です。

#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "Hello";
    int length = strlen(inputString);

    // 文字列を1文字ずつ配列に格納
    for (int i = 0; i < length; i++) {
        char charArray[2] = {inputString[i], '
#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "Hello";
    int length = strlen(inputString);

    // 文字列を1文字ずつ配列に格納
    for (int i = 0; i < length; i++) {
        char charArray[2] = {inputString[i], '\0'};
        printf("%s, ", charArray);
    }

    return 0;
}
'}; printf("%s, ", charArray); } return 0; }

このコードでは、”Hello”という文字列を1文字ずつ分割し、結果を表示しています。

2文字ずつ分割して配列にする

2文字ずつ分割する場合も、同様にループを使用します。

以下はその例です。

#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "Hello";
    int length = strlen(inputString);

    // 文字列を2文字ずつ配列に格納
    for (int i = 0; i < length; i += 2) {
        char charArray[3] = {inputString[i], (i + 1 < length) ? inputString[i + 1] : '
#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "Hello";
    int length = strlen(inputString);

    // 文字列を2文字ずつ配列に格納
    for (int i = 0; i < length; i += 2) {
        char charArray[3] = {inputString[i], (i + 1 < length) ? inputString[i + 1] : '\0', '\0'};
        printf("%s, ", charArray);
    }

    return 0;
}
', '
#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "Hello";
    int length = strlen(inputString);

    // 文字列を2文字ずつ配列に格納
    for (int i = 0; i < length; i += 2) {
        char charArray[3] = {inputString[i], (i + 1 < length) ? inputString[i + 1] : '\0', '\0'};
        printf("%s, ", charArray);
    }

    return 0;
}
'}; printf("%s, ", charArray); } return 0; }

このコードでは、”Hello”を2文字ずつ分割し、結果を表示しています。

広告

C言語文字列を改行で配列にする

改行を区切り文字として利用して文字列を分割する方法もあります。

以下はその例です。

#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "Line1\nLine2\nLine3";
    char *token = strtok(inputString, "\n");

    // 改行で配列に格納
    while (token != NULL) {
        printf("%s, ", token);
        token = strtok(NULL, "\n");
    }

    return 0;
}

このコードでは、改行で文字列を分割し、結果を表示しています。

区切り文字で配列にする

特定の区切り文字を利用して文字列を分割する方法もあります。

以下はその例です。

#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "Apple,Orange,Banana";
    char *token = strtok(inputString, ",");

    // 区切り文字で配列に格納
    while (token != NULL) {
        printf("%s, ", token);
        token = strtok(NULL, ",");
    }

    return 0;
}

このコードでは、カンマを区切り文字として文字列を分割し、結果を表示しています。

広告

指定文字数で配列にする

指定文字数で文字列を分割するには、同様にループを使用します。以下は例です。

#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "HelloWorld";
    int chunkSize = 5;
    int length = strlen(inputString);

    // 指定文字数で配列に格納
    for (int i = 0; i < length; i += chunkSize) {
        char charArray[chunkSize + 1];
        strncpy(charArray, inputString + i, chunkSize);
        charArray[chunkSize] = '
#include <stdio.h> 
#include <string.h>

int main() {
    char inputString[] = "HelloWorld";
    int chunkSize = 5;
    int length = strlen(inputString);

    // 指定文字数で配列に格納
    for (int i = 0; i < length; i += chunkSize) {
        char charArray[chunkSize + 1];
        strncpy(charArray, inputString + i, chunkSize);
        charArray[chunkSize] = '\0';
        printf("%s, ", charArray);
    }

    return 0;
}
'; printf("%s, ", charArray); } return 0; }

このコードでは、”HelloWorld”を指定文字数(ここでは5)ごとに分割し、結果を表示しています。

広告

まとめ

C言語で文字列を分割する方法は様々ですが、1文字ずつ、2文字ずつ、改行や区切り文字、

指定文字数での分割について理解しました。

これらの方法を使いこなすことで、文字列処理の幅が広がります。

是非実際にコードを書きながら試してみてください。

タイトルとURLをコピーしました