ITP1_9_A: Finding a Word
問題
要約: 文字列の中に指定された単語がいくつ含まれているか.
ソースコード
#include <stdio.h> #include <string.h> #include <ctype.h> int main() { int i; int sum = 0; char W[11], T[1001]; scanf("%s", W); for( i = 0; W[i]; ++i ) W[i] = tolower(W[i]); while( 1 ){ scanf("%s", T); if( strcmp("END_OF_TEXT", T) == 0 ) break; for( i = 0; T[i]; ++i ) T[i] = tolower(T[i]); if( strcmp(W, T) == 0 ) ++sum; } printf("%d\n", sum); return 0; }
WAの原因
- 大文字・小文字を区別していた
- "tolower()" を追加
- "END_OF_TEXT" も巻き込んで小文字化していた
- 読み込んですぐに "if( strcmp("END_OF_TEXT", T) == 0 ) break;" を行い,違えば小文字化することで巻き込みを避けた