int wordcount(char *str,int n)
{
int i=0,count=0,count1=0;
for(i=0;i<strlen(str);i++)
{
if(str[i]!=' ' || str[i]!='\n' || str[i]!='\t')
{
count++;
}
else
{
if(count<=n)
{
count1++;
}
count=0;
}
}
if(count<=n)
return (count1+1);
else
return count1;
}
计算str中的字数,其中字符数等于或小于length。该单词必须在两侧都有空格(空格,制表符,换行符或回车符),除非它位于字符串str的开头或结尾。例如,如果length == 3,则该函数应该可以 计算所有出现的单词,例如{the,in,a,of,all,... etc}
我的问题是:每当我在if语句中输入'\ n'和'\ t'以及'\ _ r'时,或者条件旁边是''它给出0作为答案,但如果我只使用''它给了我正确的答案。
有人可以向我解释一下吗?
答案 0 :(得分:1)
因为你在循环保护中使用了i++
,所以你在循环中测试的字符就是之后的那个你刚才确定的那个空格终止了字符串。