统计单词数这个代码有什么问题

img


不穿插其他字符的字母和数字算作一个单词,字符串里会出现@#等符号

判断数字,小写字母,大写字母,要分别用小括号括起来。

(1)for循环不能用i<99,应该用str[i]!=0
(2)if中的条件,用||分隔的三个,需要用()括起来, if( (条件1) || (条件2) || (条件3) )
(3)统计单词一般用空格来分隔,当前一个字符是空格,且当前字符不是空格时,单词数目+1


字符串里会出现@#等符号这个说明,这些字符算在单词里吗?
代码改成下面的试试:

#include <stdio.h>
int main()
{
    char str[100];
    int i,cnt=0,flag=1;
    gets(str);
    for (i=0;str[i]!='\0';i++)
    {
        if((str[i]>='0' && str[i]<='9')||(str[i]>='a' && str[i]<='z')||(str[i]>='A' && str[i]<='Z'))
        {
            if(flag == 1)
            {
                cnt++;
                flag = 0;
            }
        }else
            flag = 1;
    }
    printf("%d",cnt); //这里是cnt
    return 0;
}