(C语言)输入正整数n,再输入n个字符,统计英文字母(不区分大小写)、空格或回车、数字、其他字符?

去百度上看了很多类似的还是不会,求大佬直接给个正确的解法吧

直接上代码:

int main()

{

    int n,letter=0,blank=0,digit=0,other=0;

    printf("Enter n:");

    scanf("%d",&n);

    printf("Enter %d characters:",n);

    char *c=new char[n+1];

    scanf("%s",c);

    for(int i=0;i<n;i++)

    {

       if ((c[i]>='a'&&c[i]<='z')||(c[i]>='A'&&c[i]<='Z')) {

            letter++;

        }

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

        {

            blank++;

        }

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

        {

            digit++;

        }

        else

        {

            other++;

        }

    }

     printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);


    return 0;

}


运行结果:

追问

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-10-17
看了这个代码中,有几处问题。这个程序中不需要使用字符数组。第11行中不是小于等于,而是小于。第18行中不是CR,而是\n,第23行中不是逗号,要用\n。本回答被网友采纳

...统计英文字母(不区分大小写)、空格或回车、数字、其他字符?
int main(){ int n,letter=0,blank=0,digit=0,other=0;printf("Enter n:");scanf("%d",&n);printf("Enter %d characters:",n);char *c=new char[n+1];scanf("%s",c);for(int i=0;i<n;i++){ if ((c[i]>='a'&&c[i]<='z')||(c[i]>='A'&&c[i]<='Z')) {...

c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小 ...
printf("大写字母:%d, 小写字母:%d, 空格:%d, 数字:%d, 其他:%d\\n",upper, lower, space, digit, other);return 0;}

C语言中怎样输入n,再输入一个字符,然后输出n个这样的字符
include<stdio.h> void main(){ int n;int i;char c;scanf("%d",&n); \/\/输入n getchar(); \/\/吸收回车键 scanf("%c",&c); \/\/输入字符 for(i=0;i<n;i++)printf("%c",c);}

...其中英文字母,空格,数字和其他字符的个数.(C语言)
int main(){ char c;int letters=0,spaces=0,digits=0,others=0;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++;} pr...

C语言编程:输入一行字符,统计出其中英文字母、空格、数字和其他字符的个...
呵呵,下面是C的,其实这里输入的时候输入空格就被认为输入中止,所以计算空格没意义,所以目前有个假设空格能输入哈 include<stdio.h> void main(){ int nE=0,nS=0,nN=0,nO=0,i=0;char a[1000];scanf("%s",a);while (a[i]!='\\0') { if (a[i]<='z' && a[i]>='a' || a[i...

输入一行字符,分别统计出其中英文字母(包括大小写)、空格、数字和其他字...
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(){ 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++...

输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数.
while((ch=getchar())!='\\n') 就是一直接收字符直到接收到的是回车.另外,C语言的输入输出牵涉到一个缓冲机制,这里一直输入直到有一个回车才会从缓冲区读出数据.你不妨试一下编一个程序,输入N行,以EOF结尾,然后输出,你会发现,每输入一行按回车后,下面就会先输出你刚输入的那一行字符,然后再让你...

C语言:从键盘输入一篇英文文本,统计每个英文字母(分大小写)及空格、数...
i<'a'+26; i++){printf("%c : %d\\n", (char) i, sign[i]);}\/\/输出空格i = 32;printf("Space : %d\\n", sign[i]);\/\/输出回车i = 10;printf("Enter : %d\\n", sign[i]);\/\/输出其他字符for(i=0; i<256; i++){if(!(i>='0' && i<='9') && !(i>='A' &&...

c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小 ...
因为字符串中有空格所以不能使用scanf函数来接收键盘输入的字符串,因为scanf遇到空格和回车结束输入,所以需要使用gets来接收键盘输出的字符串,接着依次判断并累加,最后输出即可。参考代码:include <stdio.h>int main() {int a=0,b=0,c=0,d=0,f=0,i;char ch[100];gets(ch); for(i=0;ch...

相似回答