用简单的C语言编写程序

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

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


我的做题思路是:
首先获取一个字符串存入字符数组,
然后遍历数组,统计大写字母,小写字母和数字的个数,然后把字符串里的'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

前面的都有了,后面的没有啥的,自己加个判断吧,对应字母的数量if (numLetter[i]==0)

#include<stdio.h>
#define MaxSize 100

int main()
{
    char words[MaxSize];
    int nA=0,na=0,n0=0;
    char Letter[4] = {'L','o','v','e'};
    int numLetter[4]={0,0,0,0};
    int arrLetter[MaxSize][4];

    scanf("%s", words);
    for(int i=0;i<MaxSize && words[i]!='\0';i++){
        if(words[i]>='A'&&words[i]<='Z') nA++;
        if(words[i]>='a'&&words[i]<='z') na++;
        if(words[i]>='0'&&words[i]<='9') n0++;
        for(int j=0;j<4;j++)
            if(words[i]==Letter[j])
                arrLetter[numLetter[j]++][j]=i;
    }

    printf("\n大写:%d 小写:%d 数字:%d",nA,na,n0); //三种类型的数量
    for(int i=0;i<4;i++) {
        printf("\n%c个数:%d 索引号:",Letter[i],numLetter[i]); //四种字母的数量
        for(int j=0;j<numLetter[i];j++)
            printf("%d ",arrLetter[j][i]);
    }

    return 0;
}