回 帖 发 新 帖 刷新版面

主题:求助解答

我遇到一个问题是输入一行字符,分别统计出其中英文字母、空格和数字的个数,遇到回车符时结束统计,输入时只含英文字母,空格,数字,这是我编的程序:
#include <stdio.h>
int main ()
{
    int letter=0,space=0,digit=0;
    char c;
    
    while(getchar()!='\n')
    {
        c=getchar();
        if(c<=57&&c>=48) digit++;
        else if(c>=65&&c<=122) letter++;
        else if(c==32) space++;
    }
    
    printf("letter=%d,space=%d,digit=%d\n",letter,space,digit);
    return 0;
}

我想不出用什么作为循环条件好,似乎回车的判断也有问题,我刚学C语言,请各位多多指教。

回复列表 (共4个回复)

沙发

#include<stdio.h>
#include<ctype.h>

int main ()
{
    int letter=0,space=0,digit=0;
    char c;
    
    while((c=getchar()) != '\n')
    {
        if(isdigit(c)) digit++;         //判断整数
        if(isalpha(c)) letter++;        //判断字符
        if(c==32) space++;              //判断空格
    }
    
    printf("letter=%d,space=%d,digit=%d\n",letter,space,digit);
    return 0;
}

板凳

int c;
while((c=getchar()) != '\n')....

3 楼


非常感谢!![em2]

4 楼


很感谢你的帮助![em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册