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' 以及 ' ' 旁边的 or 条件时,它都会给出 0 作为答案,但如果我只使用 ' '它给了我正确的答案。
谁能给我解释一下吗?
最佳答案
因为您在循环保护中使用了 i++
,所以您在循环内测试的字符是您刚刚确定不是空终止的字符之后字符串。
关于计算长度小于n的字符串中的单词数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567023/