Hydrogen7s 2022-10-29 16:15 采纳率: 100%
浏览 42
已结题

如何使用2个数组(60个字符)存放2行字符串,分别统计出其中的英文字母、数字、空格及其他字符的个数?(语言-c语言)

使用2个数组(60个字符)存放2行字符串,分别统计出其中的英文字母、数字、空格及其他字符的个数。

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int num1=0,num2=0,num3=0,num4=0; //英文字母 数字 空格 其他字符
    int n=60;
    int m=60;
    int i,j;
    char str1;
    char str2;
    char a[60];
    char b[60];
    
    for( i=0; i<n; i++){
        scanf("%c",&a[i]);
    }
    for( j=0; j<m; j++){
        scanf("%c",&a[j]);
    }

    while((str1 = getchar(a)) != '\n'){
        if (str1 >= 'a' && str1 <='z' || str1 >= 'A' && str1 <= 'Z'){
            num1++;
        } else if(str1 >= '0' && str1 <= '9' ) {
            num2++;
        } else if(str1 == ' ') {
            num3++;
        } else {
            num4++;
        }
    }
    printf("字母的数量:%d\n",num1);
    printf("数字的数量:%d\n", num2);
    printf("空格的数量:%d\n", num3);
    printf("其他:%d\n",num4);

    num1 = num2 = num3 = num4 = 0;
    while((str2 = getchar(b)) != '\n'){
        if (str2 >= 'a' && str2 <='z' || str2>= 'A' && str2 <= 'Z'){
            num1++;
        } else if(str2 >= '0' && str2 <= '9' ) {
            num2++;
        } else if(str2 == ' ') {
            num3++;
        } else {
            num4++;
        }
    }
    printf("字母的数量:%d\n",num1);
    printf("数字的数量:%d\n", num2);
    printf("空格的数量:%d\n", num3);
    printf("其他:%d\n",num4);
    
    system("pause");
    return 0;

    
}

         运行结果及报错内容 无法控制读入的字符数量为60(好像输入的字符根本没存到数组里面或者根本没从数组里面读字符)

         思路 先用for循环将字符存到数组里面再用getchar函数(不知到怎么用getchar读取数组中的字符)或者for循环读入数组中的字符判断各种字符类型的个数;

        问题:1.如何将字符存到数组当中以及如何用gtechar读取数组中的字符
                    2.如果用循环来读入数组中的字符那么跳出循环的条件是什么(自己想的是用一个计数器每次循环后加一 直到加到60为止 好笨的方法qwq)

本人全靠自学 希望有人指点一二 感谢!

  • 写回答

2条回答 默认 最新

  • 四海一叶秋 2022-10-29 16:32
    关注
    for( i=0; i<n; i++){
            scanf("%c",&a[i]);
        }
        for( j=0; j<m; j++){
            scanf("%c",&a[j]);
        }
    

    改成:

    fgets(a, 60, stdin);
    fgets(b, 60, stdin);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月29日

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?