文字以外で区切られたファイルから単語を入力したい。Java で事前定義された \W 文字クラスを使用するのと同様に、C でこれを行う簡単な方法はありますか?
これにどのようにアプローチすればよいですか?
ありがとう。
You can use fscanf
(provided you're guaranteed a max length of word)
char temp_str[1000];
char temp_w[1000]
while(fscanf(file, "%[a-zA-Z]%[^a-zA-Z]", temp_str, temp_w) != EOF) {
printf("STR: %s\n", temp_str);
}
Edit: this should do the trick, temp_str
will hold the sequence of letters and temp_w
will hold the delimiting characters inbetween
一般的な文字クラスと\Wは、実際にはJavaとはまったく関係ありません。これらは正規表現サポートの一部であり、GNUCを含む多くの言語で利用できます。GNUCライブラリの正規表現を参照してください。
is_
で定義されている一連の関数を利用できます<ctype.h>
。
たとえば、isalpha()
何かがアルファベット文字であるかどうかがわかります。 isspace()
何かが空白かどうかを教えてくれます。