【发布时间】:2016-02-23 01:14:35
【问题描述】:
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, ...等}
我的问题是:每当我在 if 语句中输入 '\n' 和 '\t' 和 '\r' 时,在 ' ' 旁边有一个 or 条件,它给出 0 作为答案,但如果我只使用 ' '它给了我正确的答案。
谁能给我解释一下?
【问题讨论】:
-
请显示,而不是描述,您要询问的代码。
-
把那个while循环改写成for循环,你就会看到发生了什么。
-
由于您将其标记为 C++,因此使用
std::istringstream使这变得非常简单。