プロが教える店舗&オフィスのセキュリティ対策術

C言語で、ファイルから読み取った単語の頭文字が「x」の単語のみ抽出したいです。

読み取ったファイルからwhileで1文字ずつ取得し、
単語は「,」で区切られているので、文字がない、またはカンマが来たらwhile抜けるようにしています。
以下のコードで、文字列の「x」を判別し、そこからカンマまで表示させることはできました。
ただ、文字中に「x」がある場合も抽出してしまいます。
1文字ずつ取得しているので頭文字という概念がなく、悩んでいます。
なにかいい案を教えて頂けますでしょうか。
1文字1文字をある区切りで配列に格納などできればいいのですが。

for (int i = 0; i < 100; i++){
if ((ch = fgetc(ファイル名)) == 'x') {
printf("%c", ch);
while ((ch =fgetc(ファイル名)) != EOF && ch !=',') {
printf("%c", ch);
}
printf("\n");
cnt++;
}
}

A 回答 (1件)

開始時かwhileを抜けた直後かどうかで判断すればOKですので、


フラグを導入してみてはいかがでしょう。
    • good
    • 0
この回答へのお礼

迅速な回答ありがとうございます。
結果としては、読み取った文字をカウントし、カンマで0にリセットする方法で解決しました。
Whileを抜けた直後の判断、フラグについて調べたことで、上記の方法を思いつくことができました。1人では解決できなかったので大変助かりました。ありがとうございます。

お礼日時:2020/05/28 14:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!