C语言作业2测试
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>
#include <windows.h>


char str[1000];     //用于储存输入的字符串

char lovec[5];      //用于储存“L、o、v、e”这四个字母
int love[100];      //用于储存“L、o、v、e”这四个字母对应的ASCII值

char Lmr[100];      //对二次输入的内容进行存储,下同
char omr[100];
char vmr[100];
char emr[100];

int i, num = 0, cap = 0, low = 0;  //此处num表示数字,cap表示大写字母,low表示小写字母
int j = 0, k = 0, p = 0, q = 0;
int Lt = 0, ot = 0, vt = 0, et = 0;



/*
以下为各子函数
*/

void get()      //输入函数,用于输入字符串并赋值给字符组
{
    printf("请输入字符串\n");
    gets_s(str);
}

void classify()     //分类,按照要求对大写字母、小写字母、数字进行分类和计数
{
    for (i = 0; i < strlen(str); i++)    //strlen用于循环计算字符串长度
    {
        if (str[i] >= '0' && str[i] <= '9') num++;      //对每个字符进行检测,如果符合条件,计数变量+1,下同
        else if (str[i] >= 'A' && str[i] <= 'Z') cap++;
        else if (str[i] >= 'a' && str[i] <= 'z') low++;
    }
}

void outputclassify()       //对分类结果进行输出
{
    printf("数字有%d个\n大写字母有%d个\n小写字母有%d个\n", num, cap, low);
    printf("其中,对于'L','o','v','e'这四个字母:\n");
}

void check()        //检查“L、o、v、e”这四个字母是否存在,并显示其所在位置
{
    for (i = 0; i < strlen(str); i++)
    {
        if (str[i] == 'L')
        {
            Lt++;
            //printf("L在第%d位!", i);
            printf("第%d个L在第%d位!\n", Lt, i + 1);
            j = 1;
        }

    }

    for (i = 0; i < strlen(str); i++)
    {
        if (str[i] == 'o')
        {
            ot++;
            printf("第%d个o在第%d位!\n", ot, i + 1);
            k = 1;
        }
    }
    for (i = 0; i < strlen(str); i++)
    {
        if (str[i] == 'v')
        {
            vt++;
            printf("第%d个v在第%d位!\n", vt, i + 1);
            p = 1;
        }
    }
    for (i = 0; i < strlen(str); i++)
    {
        if (str[i] == 'e')
        {
            et++;
            printf("第%d个e在第%d位!\n", et, i + 1);
            q = 1;
        }
    }
}

void final()        //最终的输出结果
{
    lovec[0] = 'L';
    lovec[1] = 'o';
    lovec[2] = 'v';
    lovec[3] = 'e';
    lovec[4] = '\0';
    love[0] = 76;
    love[1] = 111;
    love[2] = 118;
    love[3] = 101;
    love[4] = '\0';

    printf("这四个字符为:\n");
    for (i = 0; i < 4; i++)
    {
        printf("%c\n", lovec[i]);
    }
    printf("\n");
    printf("这四个字符对应的的ASCII值为:\n");
    for (i = 0; i < 4; i++)
    {
        printf("%d\n", love[i]);
    }
    printf("\n");
}

void judge()        //对上述检查结果进行判断,若缺少某一字符,则按照题目要求,提示进行输入
{
    if (j == 1 && k == 1 && p == 1 && q == 1)       //如果“L、o、v、e”这四个字母都存在,则直接输出结果
    {
        final();
    }
    else        //若有字符不存在,则逐个检查并要求输入,直到全部输入后再输出结果
    {
        if (j == 0)
        {
            do
            {
                printf("没有字符 L !请输入!\n");
                gets_s(Lmr);
                if (Lmr[0] == 'L'&&Lmr[1]=='\0')
                {
                    j = 1;
                }
            } while (j == 0);


        }

        if (k == 0)
        {
            do
            {
                printf("没有字符 o !请输入!\n");
                gets_s(omr);
                if (omr[0] == 'o' && omr[1] == '\0')
                {
                    k = 1;
                }
            } while (k == 0);
        }
        if (p == 0)
        {
            do
            {
                printf("没有字符 v !请输入!\n");
                gets_s(vmr);
                if (vmr[0] == 'v' && vmr[1] == '\0')
                {
                    p = 1;
                }
            } while (p == 0);
        }
        if (q == 0)
        {
            do
            {
                printf("没有字符 e !请输入!\n");
                gets_s(emr);
                if (emr[0] == 'e')
                {
                    q = 1;
                }
            } while (q == 0);
        }

        final();


    }
}

void quit()
{
    printf("程序将在10秒后退出");
    Sleep(10000);
}

/*
以下为主程序部分,主体流程按照输入-》分类处理-》判断处理-》结束输出 这四个流程
*/

int main()      //主函数
{
    get();
    classify();
    outputclassify();
    check();
    judge();
    quit();

    return 0;
}