-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”。并显示“该”词出现的次数。

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变量将被赋值,true即 1。否则为 0。
  2. 如果第 (i+1) 个字符是h or H. (char)h变量将被赋值,true即 1 否则为 0。
  3. 如果第 (i+2) 个字符是e or E. (char)e变量将被赋值,true即 1 否则为 0。
于 2013-06-17T14:17:01.433 回答
1
t=(input[i]=='t' || input[i]=='T');

在这一行中,如果 input[i] 是 't' 或 'T',则右侧返回 true。否则返回假。如果它返回 true,则 t 将分配给 ASCII 值 1,否则将分配给 ASCII 值 0。接下来的三行将与此类似。

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 回答