C语言 统计字符串中英文,数字,空格,其他的几种写法

本文介绍了一种使用C语言实现的字符分类计数方法,通过读取输入的每个字符并判断其类型(英文、数字、空格或其他),该程序能够统计并输出各类字符的数量。文章提供了两种实现方式,一种使用getchar()函数,另一种使用scanf()函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路是每次读入一个字符,来判断属于那种,在有自变量加1;

#include <stdio.h>
int main()
{
    char e;
    int a=0,b=0,c=0,d=0;
    while((e=getchar())!='\n')//切记c=getchar()外用()括起来即(c=getchar())
    {
        if((e>='a'&&e<='z')||(c>='A'&&c<='Z'))//两个判断条件中间用“||”,外面括起来
            a++;
        else if(e>='0'&&e<='9')
            b++;
        else if(e==' ')
            c++;
        else
            d++;
    }
    printf("英语%d\n数字%d\n空格%d\n其他%d\n",a,b,c,d);
}


结果

ea yh jERHAGETJ #$ %^^&** 461   ELRHU
英语5
数字3
空格8
其他21

第二种是将核心代码改为不用getchar用scanf的形式

#include <stdio.h>
int main()
{
    char e=0;//这里最好初始化,万一里面装的就刚好是\n就不进入循环
    int a=0,b=0,c=0,d=0;
    for(;e='\n';)//无限循环到回车才跳出循环
    {
        scanf("%c",&e);
        if((e>='a'&&e<='z')||(c>='A'&&c<='Z'))//两个判断条件中间用“||”,外面括起来
            a++;
        else if(e>='0'&&e<='9')
            b++;
        else if(e==' ')
            c++;
        else
            d++;
    }
    printf("英语%d\n数字%d\n空格%d\n其他%d\n",a,b,c,d);
}

其中还可以选择不用if用问号表达式这里就不多做解释

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值