问题链接: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 ", count); } return 0; }