首页 > 在一个数字和英文混杂的句子里,统计英文单词数,我的代码错在哪?

在一个数字和英文混杂的句子里,统计英文单词数,我的代码错在哪?

int main(){
    int s[80],f1=0,num=0;
    gets(s);
    int n = strlen(s);
    printf("%d",n);
    for (int i = 0; i<n-1; i++) {
        if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')) {
            f1=1;
        }
        if(s[i]>='0'&&s[i]<='9'){
            f1=0;
        }
        if((s[i]==' '||s[i]=='.')&&(f1==1)) {
            num++;
        }
        printf("%d",f1);
        
    }
    printf("有 %d 个单词",num);
    
}

实际上f1总是print出一堆0,所有都是0?问题出在哪?
求大神教育


为嘛不用正则表达式??


这几个while是什么鬼,不应该是if吗?


你打 f1是什么鬼?输出的不该是num么


小伙子你这段代码的bug很多啊,如果连续两个空格就会出现多记,如果没有句号,你就会漏记一个单词,上码

include <stdio.h>

int main()
{

char s[80] = {0};
char *p;
int num = 0;
unsigned char flag = 0;
gets(s);
p = s; 
while(*p++)
{
    if(( *p >= 'a' && *p <= 'z')||( *p >= 'A' && *p <= 'Z') )
    {
            flag = 1;
    }
    else if (flag == 1)
    {
        flag = 0;
        num++;
    }

}
printf("there are %d words\n",num);

}


良好的注释
你这是统计字母还是单词?

【热门文章】
【热门文章】