C言語で文字列をsscanfで分割する方法は何ですか?
sscanf関数を使用すると特定の形式に従って文字列を分割することができます。以下は例です:
#include <stdio.h>
int main() {
char str[] = "Hello,World,C Language";
char word1[10], word2[10], word3[10];
sscanf(str, "%[^,],%[^,],%s", word1, word2, word3);
printf("Word 1: %s\n", word1);
printf("Word 2: %s\n", word2);
printf("Word 3: %s\n", word3);
return 0;
}
上記の例では、3つの単語がカンマで区切られた文字列strが定義されています。これらの単語をそれぞれword1、word2、word3の配列にsscanf関数を使用して格納します。
sscanf関数のフォーマット文字列において、%[^,]はカンマ以外の任意の文字とマッチすることを意味し、%sは空でない文字列にマッチすることを意味します。これらのフォーマット指示子をコンマで区切ってフォーマット文字列に使用することで、文字列をコンマで分割する効果を実現できます。
指定のコードを実行すると、結果は以下のようになります:
Word 1: Hello
Word 2: World
Word 3: C Language
文字列が成功裂かれ、それぞれの配列に保存されたことが見て取れます。