统计长度小于 n 的字符串中的单词个数

Count number of words in a string of length less than n

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的单词数。单词两边必须有白色space(space、制表符、换行符或回车符return),除非它位于字符串 str 的开头或结尾。例如,如果 length == 3 ,函数应该能够 计算单词的所有出现次数,例如 {the, in, a, of, all, ...etc}

我的问题是:每当我在 if 语句中输入 '\n' 和 '\t' 和 '\r' 并在 ' ' 旁边输入 or 条件时,它给出 0 作为答案,但如果我只使用' '它给了我正确的答案。

有人能给我解释一下吗?

因为您在循环守卫中使用了 i++,所以您在循环内测试的字符是之后您刚刚确定的那个不是null 终止字符串。