输入一行字符,分别统计出其中的英文字母、空格、数字、和其他字符的个数,用C语言编写程序

用C语言编写

一、问题分析:

输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。

要统计各个类的个数,就要逐个判断是哪个分类的。

由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。

二、算法设计:

1、读入字符,直到遇到换行结束。

2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。

3、对于每个字符判断后,对应类别计数器自加。

4、最终输出结果。

三、参考代码:

#include <stdio.h>
int main()
{
    int a,b,c,d,ch;
    a=b=c=d=0;//计数器初始化为0.
    while((ch=getchar())!='\n')//循环读取字符,到换行结束。
    {
        if(ch>='0' && ch<='9')//数字
            a++;
        else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))//字母
            b++;
        else if(ch==' ')//空格
            c++;
        else //其它
            d++;
    }
    printf("%d %d %d %d\n", a,b,c,d);//输出结果。
    return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-30
#include <stdio.h>
#include <string.h>
#define A 80
main()
{
char str[A];
int len,i,letter=0,digit=0,space=0,others=0;
printf("请输入一行字符:");
gets(str);
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
letter++;
else if(str[i]>='0'&&str[i]<='9')
digit++;
else if(str[i]==' ')
space++;
else
others++;
}
printf("英文字符有:%d\n",letter);
printf("数字字符有:%d\n",digit);
printf("空格有:%d\n",space);
printf("其他字符有:%d\n",others);
}
第2个回答  推荐于2017-09-24
用for语句编的.....

#include<stdio.h>
void main()
{
int z,k,s,q;
char ch;
z=k=s=q=0;
for(ch=getchar();ch!='\n';;)
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
z++;
else if(ch==' ')
k++;
else if(ch>='0'&&ch<='9')
s++;
else q++;
ch=getchar();
}
printf("zimu:%d\nspace:%d\nshuzi:%d\nqita:%d\n"z,k,s,q);
}本回答被提问者采纳
第3个回答  2020-03-09

C语言经典例子之统计英文、字母、空格及数字个数

第4个回答  2018-04-30
#include<stdio.h>
int main()
{
int letter=0,blank=0,digit=0,other=0;
char c;
printf("Input 10 characters: ");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{letter++;}
else if(c==' ')
{blank++;}
else if(c>='0'&&c<='9')
{digit++;}
else
{other++;}
}
printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);
return 0;
}

输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数...
printf("字母=%d,数字=%d,空格=%d,其他=%d\\n",letters,digits,spaces,others);return 0;}

输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数...
参考代码:include<stdio.h>int main(){char str[100];int word = 0, blank = 0, num = 0, other = 0;int i = 0;gets(str);while (str[i] != '\\0'){if ((str[i]>= 'a' && str[i] <= 'z') || (str[i]>= 'A' && str[i] <= 'Z')){word++;}else if ((...

用C语言编程:输入一行字符,分别统计出其中英文字母、空格、数字和其他字...
printf("\\n其中的英文字母个数为 %d\\n",count1);printf("\\n其中的空格个数为 %d\\n",count2);printf("\\n其中的数字个数为 %d\\n",count3);printf("\\n其中的其他字符个数为 %d\\n",count4);}

...文本文件,分别统计出其中英文字母、空格、数字和其它字符的个数_百...
printf("字母数:%d\\n空格数:%d\\n数字数:%d\\n其他字符:%d\\n",letters,space,digit,other);return 0;} 运行效果:

1. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个...
s[i]<='Z' && s[i]>='A')ch++;else n++;i++;} printf("刚才输入的字符中英文字符个数为 %d\\n", ch);printf("刚才输入的字符中空格个数为 %d\\n", space);printf("刚才输入的字符中数字个数为 %d\\n", num);printf("刚才输入的字符中其他个数为 %d\\n", n);return 0;} ...

C语言题目输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的...
include <stdio.h> int main(){ int letter=0,space=0,number=0,others=0;char nextchar;printf("Input your string\\n");for(;nextchar!='\\n';){ scanf("%c",&nextchar);if('a'<=nextchar&&nextchar<='z'||'A'<=nextchar&&nextchar<='Z')letter++;else if(nextchar==' ')space++...

编程:输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个...
printf("请输入一串任意的字符:\\n");while((c=getchar())!='\\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters++;else if(c>='0'&&c<='9')digits++;else if(c==' ')spaces++;else others++;} printf("字母有%d个,数字有%d个,空格有%d个,其他有%d个",...

C语言编程:输入一行字符,统计其中英文字母的个数?
include<stdio.h> int main(){char s[200];int i,n=0;gets(s);for(i=0;s[i];i++)if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')n++;printf("%d\\n",n);getch();return 0;}

...统计其中英文字母、空格、数字和其他字符的个数。
void main(){ int w=0,k=0,n=0,z=0; \/\/w为字母个数,k为空格个数,n为数字个数,z为其他字符个数 char ch;scanf("%c",&ch);while(ch!='@'){ if ( ch>='A'&&ch<='z' )w++;else if ( ch==' ' ) \/\/这里你少写个‘=’号,以后要细心啊 k++;else if ( ch>=...

C语言 输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的...
int i=0,j=0,k=0,m=0,da=0,xiao=0;printf("please input the string\\n");while((s=getchar())!='\\n') \/*循环从键盘读入字符直到一行结束(输入回车)*\/ { if((s='a')||(s'A')){ if(s='A')da++;if(s='a')xiao++;i++; \/*i存入字母数*\/ } else if(s==' ')...

相似回答