这个陈述的含义是什么t =(input [i] =='t'|| input [i] =='T');

时间:2013-06-17 14:11:53

标签: c input count word frequency

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');

2 个答案:

答案 0 :(得分:2)

意思是每个第i个元素:

  1. 如果ith字符是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。

答案 1 :(得分:1)

t=(input[i]=='t' || input[i]=='T');

在此行中,如果input [i]为't'或'T',则右侧返回true。否则返回false。如果它返回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');