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日

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行