みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

c言語のscanfとfgetsについて

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;
}

投稿日時 - 2018-11-05 14:26:40

QNo.9554771

qzl

困ってます

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

例えば
fgets(key, sizeof(key), stdin);
のすぐ後に
if(strchr(key,'\n'))key[strlen(key)-1]='\0';else{while(getchar()!='\n');}
を入れておくべきじゃないのかな?

投稿日時 - 2018-11-05 15:18:05

お礼

ありがとうございました。

投稿日時 - 2018-11-07 11:18:35

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問