解決済み

c言語のscanfとfgetsについて

  • 困ってます
  • 質問No.9554771
  • 閲覧数117
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (2/2)

2つの単語A, Bを入力して、AがBに含まれるか否かというプログラムで
以下のようなものを作成しました。
そこで質問なのですがscanf()をfgets()に変えるとうまく動作しません
どこが間違ってますか?
変更したいfgets
fgets(key, sizeof(key), stdin);
fgets(word, sizeof(word), stdin);

-------------------------------------------------
int main(void) {
char key[101], word[101];
scanf("%s", key);
scanf("%*c%s", word);
if (strstr(word, key) != NULL) {
printf("Find %s In %s\n", key, word);
} else {
printf("Not Find\n");
}
return 0;
}

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 44% (4143/9352)

他カテゴリのカテゴリマスター
例えば
fgets(key, sizeof(key), stdin);
のすぐ後に
if(strchr(key,'\n'))key[strlen(key)-1]='\0';else{while(getchar()!='\n');}
を入れておくべきじゃないのかな?
お礼コメント
qzl

お礼率 100% (2/2)

ありがとうございました。
投稿日時 - 2018-11-07 11:18:35
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


OKWAVE若者応援スペシャル企画

ピックアップ

ページ先頭へ