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つの一般的な方法であり、具体的な必要に応じて他の方法を選択することもできます。