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);
}
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');
答案 0 :(得分:2)
意思是每个第i个元素:
t or T
。 (char)t
变量将被分配true
,即1.否则为0. h or H
。 (char)h
变量将被分配true
,即1,否则为0。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');