小信LvJ 2022-06-09 11:32 采纳率: 100%
浏览 79
已结题

用简单的C语言编写程序

这是真的太为难人了,想了半天没有个思路,程序牛人们看一下吧吧内容如下:
编写一个对字符串处理的程序,要求能够识别字符串中大写字母、小写字母以及数字的个数并输出,识别“L”、“o”、“v”、“e”四个字符的位置,如果有,将四个字符和对应的ASC-II分别存储在字符和int数组中并显示;如果没有,能够通过提示缺失那个字符,并要求手动输入并存储在字符和int数组中并更上述字符一并显示。

  • 写回答

2条回答 默认 最新

  • a5156520 2022-06-09 14:55
    关注

    我有点没看懂这个题目的意思,所以我不知道我的回答对不对?


    我的做题思路是:
    首先获取一个字符串存入字符数组,
    然后遍历数组,统计大写字母,小写字母和数字的个数,然后把字符串里的'L', 'o', 'v', 'e'字分别存入字符数组和int数组,然后打印统计结果,
    再用另外一个循环遍历字符数组和int数组,如果里面存入了'L', 'o', 'v', 'e'四个字符,就打印其字符和对应的ASIII码,
    再用第三个循环,寻找缺失的字符,并要求手动输入,并存入字符数组和int数组,
    最后打印用字符串形式打印字符数组。

    
    #include <stdio.h>
    
    char findLove(char * love,int len){
        
    
        int i=0;
        char ch = love[i] ;
        while(i<len){
            if(i==0&&ch=='\0'){
                return 'L';
            }else if(i==1&&ch=='\0'){
                return 'o';
            }else if(i==2&&ch=='\0'){
                return 'v';
            }else if(i==3&&ch=='\0'){
                return 'e';
            }
            i++;
            ch=love[i];
        }
        
        return '\0';
    }
    
    int  main(void){
        
        char str[100];
        int cap=0;
        int lower=0;
        int num=0;
        int i=0;
        char Love[5]={'\0'};
        int iLove[5]={0};
        
        printf("请输入一个字符串:\n");
        gets(str);
        
        char ch = str[i];
        while(ch!='\0'){
            
            
            if(ch>='A'&&ch<='Z'){  //统计大写字母个数 
                cap++;
                if(ch=='L'){  //存储'L' 
                    Love[0]='L';
                    iLove[0]='L';
                }
            }else if(ch>='a'&&ch<='z'){ //统计小写字母个数 
                lower++;
                if(ch=='o'){//存储'o' 
                    Love[1]='o';
                    iLove[1]='o';
                }else if(ch=='v'){  //存储'v' 
                    Love[2]='v';
                    iLove[2]='v';
                }else if(ch=='e'){ //存储'e' 
                    Love[3]='e';
                    iLove[3]='e';
                }            
            }else if(ch>='0'&&ch<='9'){//统计数字个数 
                num++;
            }
            
            i++;
            ch=str[i];
            
        }
        // 打印结果 
        printf("字符串有大写字母%d个,小写字母%d个,数字%d个。\n",cap,lower,num);
        
        i=0;
        //输出数组里存在的Love的某个字符及其ASCII码 
        while(i<4){
            if(Love[i]!='\0'){
                printf("%c:%d\n",Love[i],iLove[i]);
            }
            i++;
        }
        
        i=0;
        //查询缺失的字符,并要求输入并存入数组 
        while(i<4){
            if(Love[i]=='\0'){
                printf("缺失字符%c,请手动输入这个字符:\n",findLove(Love,4));
    
                scanf("%c",&Love[i]);
                while(getchar()!='\n')
                    continue;
                iLove[i] = Love[i]; 
            }
            i++;
        }
        
        //打印Love 
        printf("%s",Love);
        
        return 0;
         
        
    }
    

    img

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月10日
  • 已采纳回答 6月9日
  • 创建了问题 6月9日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度