统计长度小于 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 终止字符串。
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 终止字符串。