问题链接:HDU2017 字符串统计。这是一个入门训练题,用C语言编写程序。
问题简述:统计字符串中的数字字符数量。
问题分析:字符串有多长也不知道,只好把存储字符串的数组声明的大一些,其大小用宏定义来指定。
程序说明:判定一个字符属于哪一类,可以使用C语言库函数<ctype.h>。判定一个字符是否为数字,可以用宏isdigit()。然而,对于简单的判断,本程序中的做法更加简洁。用字符指针来处理字符串才是正解。懂得指针和地址及其它们之间的关系,才算真正懂得C语言。
这里主要考虑程序规范,简洁易懂,采用最合理的做法。
AC的C语言程序如下:
/* HDU2017 字符串统计 */
#include <stdio.h>
#define MAXSIZE 4096
int main(void)
{
int n, count;
char s[MAXSIZE], *t;
scanf("%d", &n);
while(n--) {
// 计数清零
count = 0;
// 读入字符串
scanf("%s", s);
// 统计数字字符个数
t = s;
while(*t) {
if('0' <= *t && *t <= '9')
count++;
t++;
}
// 输出结果
printf("%d\n", count);
}
return 0;
}