本文最后更新于 897 天前,其中的信息可能已经有所发展或是发生改变。
这是作业题目:编写一个对字符串处理的程序,要求能够识别字符串中大写字母、小写字母以及数字的个数并输出,识别“L”、“o”、“v”、“e”四个字符的位置,如果有,将四个字符和对应的ASC-II分别存储在字符和int数组中并显示;如果没有,能够通过提示缺失哪个字符,并要求手动输入并存储在字符和int数组中并跟上述字符一并显示。
简单翻了下书,写的比较着急,注释也没怎么标,有待优化,仅供参考
使用Visual Studio 2022
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
char str[1000];
char lovec[5];
char Lmr[100];
char omr[100];
char vmr[100];
char emr[100];
int love[100];
int j = 0, k = 0, p = 0, q = 0;
int Lt = 0, ot = 0, vt = 0, et = 0;
char j1=0,k1=0,p1=0,q1=0;
int L_r = 76;
int o_r = 111;
int v_r = 118;
int e_r = 101;
int i, num = 0, cap = 0, low = 0; //num数字,cap大写字母,low小写字母
printf("请输入字符串\n");
gets_s(str);
for (i = 0; str[i] != '\0'; i++)// for(i=0;i<strlen(str);i++)//strlen用于计算字符串长度
{
if (str[i] >= '0' && str[i] <= '9') num++;
else if (str[i] >= 'A' && str[i] <= 'Z') cap++;
else if (str[i] >= 'a' && str[i] <= 'z') low++;
}
printf("数字有%d个\n大写字母有%d个\n小写字母有%d个\n", num, cap, low);
printf("其中,对于'L','o','v','e'这四个字母:\n");
j = 0, k = 0, p = 0, q = 0;
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;
}
}
//printf("%d,%d,%d,%d",j, k, p, q);
if (j == 1 && k == 1 && p == 1 && q == 1)
{
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");
printf("%s", lovec);
printf("\n");
printf("这四个字符的ASCII值为:\n");
for (i = 0; i < 4; i++)
{
printf("%d\n", love[i]);
}
}
else
{
if (j == 0)
{
do
{
printf("没有字符 L !请输入!\n");
scanf("%s", Lmr);
if (Lmr[0] == 'L')
{
j = 1;
}
}
while (j==0);
}
if (k == 0)
{
do
{
printf("没有字符 o !请输入!\n");
scanf("%s", omr);
if (omr[0] == 'o')
{
k = 1;
}
} while (k == 0);
}
if (p == 0)
{
do
{
printf("没有字符 v !请输入!\n");
scanf("%s", vmr);
if (vmr[0] == 'v')
{
p = 1;
}
} while (p == 0);
}
if (q == 0)
{
do
{
printf("没有字符 e !请输入!\n");
scanf("%s", emr);
if (emr[0] == 'e')
{
q = 1;
}
} while (q == 0);
}
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");
printf("%s", lovec);
printf("\n");
printf("这四个字符的ASCII值为:\n");
for (i = 0; i < 4; i++)
{
printf("%d\n", love[i]);
}
}
return 0;
}