Author:MTingle
人工智能专业
荃者所以在鱼,得鱼而忘荃;蹄者所以在兔,得兔而忘蹄;言者所以在意,得意而忘 言。吾安得夫忘言之人而与之言哉!
[C语言]字符统计
题目要求:
输入一个字符串,分别统计数字,字母,以及其他字符的个数
一、以下是整个程序的代码
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
gets(str);
int na = 0, nd = 0, na1 = 0, na2 = 0, nother = 0;
for (int i = 0; i <= strlen(str) - 1; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
na1++;
}
else if (str[i] >= 'a' && str[i] <= 'z')
{
na2++;
}
else if (str[i] >= '0' && str[i] <= '9') { nd++; }
else { nother++; }
}
na = na1 + na2; printf("digit=%d\talpha=%d\tother=%d\n", nd, na, nother);
return 0;
}
二、使用步骤
1.库包含
#include<stdio.h>
#include<string.h>
2.先使用一个数组str存储我们即将输入的字符串,并通过gets函数输入字符串,用na,nd,nother分别代表数字,字母,和其他字符串的数量,其中na1表示大写字母,na2表示小写字母
char str[100];
gets(str);
int na = 0, nd = 0, na1 = 0, na2 = 0, nother = 0;
2.在c语言中,字符在内存中以ASCII码储存,故我们可以根据该表进行下续实验
但我们也可以通过字母来直接进行操作,如图所示
#include<stdio.h>
#include<string>
int main()
{
char m;
scanf("%c", &m);
printf("%d\n", m);
printf("%c\n", m);
}
当我们输入A时,会得到:
65
A
当我们输入a时,会得到:
97
a
3.统计大写字母和小写字母(判别方法)
if (str[i] >= 'A' && str[i] <= 'Z')
{
na1++;
}
else if (str[i] >= 'a' && str[i] <= 'z')
{
na2++;
}
4.统计数字(判别)
else if (str[i] >= '0' && str[i] <= '9') { nd++; }
5.统计其他字符(判别)
else { nother++; }
6.把循环嵌入程序
for (int i = 0; i <= strlen(str) - 1; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
na1++;
}
else if (str[i] >= 'a' && str[i] <= 'z')
{
na2++;
}
else if (str[i] >= '0' && str[i] <= '9') { nd++; }
else { nother++; }
}
5.统计并输出
na = na1 + na2; printf("digit=%d\talpha=%d\tother=%d\n", nd, na, nother);