c言語のsplitメソッドの使い方

C言語にsplit()メソッド自体はありませんが、文字列の分割を実現する方法はあります。

1つの方法は、指定した区切り文字で文字列を分割する関数の strtok() を使用することです。 以下に例を示します。

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

int main() {
    char str[] = "Hello,World,Split,this,string";
    char *token;

    /* 使用逗号作为分隔符将字符串分割 */
    token = strtok(str, ",");
    while (token != NULL) {
        printf("%s\n", token);
        token = strtok(NULL, ",");
    }

    return 0;
}

ネイティブな日本語による言い換えは1つだけです。

Hello
World
Split
this
string

上記の例では、strtok() 関数の第 1 引数は分割対象の文字列、第 2 引数は区切り文字です。strtok() 関数を呼び出すたびに、分離された文字列部分が返されますが、それ以上分離可能な部分がないと返されなくなります。

strtok()関数は元の文字列を変更するので、元の文字列を保持したい場合、コピーしてください。

もう一つの方法は sscanf() 関数を使用する方法で、この関数は文字列から指定された書式に従ってデータを抽出します。 次に例を示します。

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

int main() {
    char str[] = "Hello,World,Split,this,string";
    char delimiter[] = ",";
    char token[20];

    /* 使用逗号作为分隔符将字符串分割 */
    int i = 0;
    while (sscanf(str, "%[^,]", token) == 1) {
        printf("%s\n", token);
        i += strlen(token) + 1;
        strcpy(str, str + i);
    }

    return 0;
}

sscanf()関数の最初の引数である分割したい文字列に対して、”%[^,]”という書式指定を用いて、コンマ以外の文字列がマッチするようにしています。また、文字列の開始位置をずらすことで文字列の分割を行っています。

これらは単にC言語で文字列を分割する2つの一般的な方法であり、具体的な必要に応じて他の方法を選択することもできます。

bannerAds