読者です 読者をやめる 読者になる 読者になる

ITP1_9_A: Finding a Word

AOJ

問題

ソースコード

#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;" を行い,違えば小文字化することで巻き込みを避けた