c语言统计大小写字母 数字个数

如题所述

#include <stdio.h>

#include <stdlib.h>

#define  N    100

void func3()

{

char str[N];

int i,lower=0,upper=0,digit=0,space=0;

long others=0;

printf("Input a string:");

gets(str);

for(i=0;str[i]!='\0';i++)

{

if(str[i]>='a' && str[i]<='z')

lower++;  /*统计小写英文字母*/

else if(str[i]>='A' && str[i]<='Z')

upper++;  /*统计大写英文字母*/

else if(str[i]>='0' && str[i]<='9')

digit++;  /*统计字符串*/

else if(str[i]==' ')

space++;

else

others++; /*统计其他字母*/

}

printf("lower English character:%d\n",lower);

printf("upper English character:%d\n",upper);

printf("digit character:%ld\n",digit);

printf("space:%d\n",space);

printf("other character: %ld\n",others);

return 0;

}

int main()

{

while(1)

{

func3();

printf("\n");

system("pause");

}

return 0;

}

扩展资料:

程序实现思路分析

统计大小写字母、数字的个数,首先要判断出字符是属于哪一种,然后增加计数。

1、判断

小写字母的范围为:'a'~'z'

大写字母的范围为:'A'~'Z'

数字的范围为:'0'~'9'

2、声明三个int变量并赋值初值为0

lower——统计小写英文字母

upper——统计大写英文字母

digit——统计数字

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
#include <stdio.h>
int main()
{
char ch;
int digit,upper,lower;
digit=upper=lower=0;   //初始化为0
while((ch=getchar()) != '\n') //输入一行字符串
{
if(ch>='0' && ch<='9')
digit++;
else if(ch>='A' && ch<='Z')
upper++;
else if(ch>='a' && ch<='z')
lower++;
}
printf("数字字符个数: %d\n",digit);
printf("大写字母个数: %d\n",upper);
printf("小写字母个数: %d\n",lower);
return 0;
}

示例运行结果:

gjkdaj12356 ABCDE0123 012

数字字符个数: 12

大写字母个数: 5

小写字母个数: 6

追问

怎么错了啊

追答

如果用的是gets()函数的话,修改如下:

#include <stdio.h>
int main()
{
    char ch[100];
    int digit,upper,lower,i=0;
    digit=upper=lower=0;          //初始化为0
gets(ch); //输入一行字符串
    while(ch[i] != '\0')
    {
        if(ch[i]>='0' && ch[i]<='9')
            digit++;
        else if(ch[i]>='A' && ch[i]<='Z')
            upper++;
        else if(ch[i]>='a' && ch[i]<='z')
            lower++;
i++;
    }
    printf("数字字符个数: %d\n",digit);
    printf("大写字母个数: %d\n",upper);
    printf("小写字母个数: %d\n",lower);
    return 0;
}

示例运行结果: 

gjkdaj12356 ABCDE0123 012

数字字符个数: 12

大写字母个数: 5

小写字母个数: 6

本回答被提问者和网友采纳
第2个回答  2018-11-15

你好!

修改后的代码,说明一会上

123456789101112131415161718192021222324#include<<a href=" target="_blank" class="baidu-highlight">stdio.h</a>>int main(){    char a[3][80];    int i,j,n1,n2,n3,n4,n5;    n1=n2=n3=n4=n5=0;    for(i=0;i<3;i++)    {gets(a[i]);    for(j=0;a[i][j]!='\0';j++)    {if(a[i][j]>='A'&&a[i][j]<='Z')        n1++;    else if(a[i][j]>='a'&&a[i][j]<='z')        n2++;    else if(a[i][j]==' ')        n3++;    else if(a[i][j]>='0'&&a[i][j]<='9')        n4++;    else        n5++;    }    }    printf("%d,%d,%d,%d,%d",n1,n2,n3,n4,n5);    return 0;}

修改处的说明,红圈处,加上等号,变成 >= 和 <=,篮圈的地方,0 和 9 加上单引号

第3个回答  2019-02-15
22.012数字是多少数量

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网