编写程序输入一个字符串,分别统计输出该字符串中的字母个数和数字个数
算法分析:判断字母和数字的核心方法是依靠 ASCII 码进行,所以对字符串中的每个字符逐个判断即可得到结果。实现方法依然是依靠指针。
程序分析:本题需要注意的有两点:
1、char 类型的变量,初学者往往理解为是不能直接比较大小的,实际上直接比较大小时,是将类型转换为了 int 后比较的 ASCII 码值。这样的方法相对与手动转换为 ASCII码比较而言更加高效和方便,希望读者掌握。
2、字母包含大小写,这点容易遗漏,在程序设计时应该考虑更全面。
另外,这道题还可以扩展为求数字、字母和其他字符的数量,请读者思考。
#include<stdio.h>
int main()
{
char str[100];//定义一个数组存储字符串
char *p;
int n_count=0,c_count=0;
p=str;
printf("请输入一个字符串:");
gets(str);//输入字符串
do
{
if((*p>='0')&&(*p<='9'))//判断数字
n_count++;
if((*p>='a')&&(*p<='z'))//判断小写字母
c_count++;
if((*p>='A')&&(*p<='Z'))//判断大写字母
c_count++;
p++;
}while(*p!='\0');
printf("字符串%s 中的字母个数是:%d ,数字个数是:%d",str,c_count,n_count);
return 0;
}