编写一个对字符串处理的程序,要求能够识别字符串中大写字母、小写字母以及数字的个数并输出,识别“W”、“a”、“n”、“d”四个字符的位置,并将四个字符和对应的ASC-II分别存储在字符和int数组中并显示。
不知道你这个问题是否已经解决, 如果还没有解决的话:到底是Love还是Wand?我这里用Wand吧:
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, upper = 0, lower = 0, num = 0;
int ascii_W, ascii_a, ascii_n, ascii_d;
char char_W, char_a, char_n, char_d;
int pos_W, pos_a, pos_n, pos_d;
printf("请输入字符串:");
scanf("%s", str);
for (i = 0; i < strlen(str); i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
upper++;
else if (str[i] >= 'a' && str[i] <= 'z')
lower++;
else if (str[i] >= '0' && str[i] <= '9')
num++;
}
printf("大写字母有%d个,小写字母有%d个,数字有%d个\n", upper, lower, num);
for (i = 0; i < strlen(str); i++)
{
if (str[i] == 'W')
{
ascii_W = str[i];
char_W = str[i];
pos_W = i;
}
else if (str[i] == 'a')
{
ascii_a = str[i];
char_a = str[i];
pos_a = i;
}
else if (str[i] == 'n')
{
ascii_n = str[i];
char_n = str[i];
pos_n = i;
}
else if (str[i] == 'd')
{
ascii_d = str[i];
char_d = str[i];
pos_d = i;
}
}
printf("W的位置是%d,a的位置是%d,n的位置是%d,d的位置是%d\n", pos_W, pos_a, pos_n, pos_d);
printf("W的ASCII码是%d,a的ASCII码是%d,n的ASCII码是%d,d的ASC-II码是%d\n", ascii_W, ascii_a, ascii_n, ascii_d);
printf("字符数组:[%c, %c, %c, %c]\n", char_W, char_a, char_n, char_d);
printf("ASCII码数组:[%d, %d, %d, %d]\n", ascii_W, ascii_a, ascii_n, ascii_d);
return 0;
}