-1
int main()//Couting the frequency of word 'the' in a sentence
{
       int i,n;
  char t,h,e,space;
    int wcount=0;
    char input[100];
    gets(input);
    n=strlen(input);
    for(i=0;i<=n-3;i++)
    {
        t=(input[i]=='t' || input[i]=='T');
        h=(input[i+1]=='h' || input[i+1]=='H');
        e=(input[i+2]=='e' || input[i+2]=='E');
        space=(input[i+3]==' ' || input[i+3]=='\0');
        if((t&&h&&e&&space)==1)

            wcount++;

    }
        printf("The frequency of word 'the' is %d",wcount);

}

この C プログラムは、指定された文で単語 'the' の頻度を検出します。このプログラムは、特定の文に存在する単語「the」の出現を見つけるために使用されます。「the」単語が出現した回数を表示します。

Can someone explain the meaning of statement:
 t=(input[i]=='t' || input[i]=='T');
        h=(input[i+1]=='h' || input[i+1]=='H');
        e=(input[i+2]=='e' || input[i+2]=='E');
        space=(input[i+3]==' ' || input[i+3]=='\0');
4

2 に答える 2

2

各 i 番目の要素の意味は次のとおりです。

  1. i 番目の文字がt or T. (char)t変数には 1 が割り当てられますtrue。それ以外の場合は 0 です。
  2. (i+1) 番目の文字がh or H. (char)h変数には 1 が割り当てられ、trueそれ以外の場合は 0 が割り当てられます。
  3. (i+2) 番目の文字がe or E. (char)e変数には 1 が割り当てられ、trueそれ以外の場合は 0 が割り当てられます。
于 2013-06-17T14:17:01.433 に答える
1
t=(input[i]=='t' || input[i]=='T');

この行では、input[i] が 't' または 'T' の場合、右側が true を返します。それ以外の場合は false を返します。true を返す場合、t は 1 の ASCII 値に割り当てられます。それ以外の場合は 0 の ASCII 値に割り当てられます。次の 3 行はこれと同様に機能します。

h=(input[i+1]=='h' || input[i+1]=='H');
 e=(input[i+2]=='e' || input[i+2]=='E');
 space=(input[i+3]==' ' || input[i+3]=='\0');
于 2014-07-23T05:42:01.913 に答える