字符串统计
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 90711 Accepted Submission(s): 49649
Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2 asdfasdf123123asdfasdf asdf111111111asdfasdfasdf
Sample Output
6 9
Author
lcy
Source
问题链接:HDU2017 字符串统计。
问题简述:统计字符串中的数字字符数量。
问题分析:字符串有多长也不知道,只好把存储字符串的数组声明的大一些,其大小用宏定义来指定。
程序说明:
判定一个字符属于哪一类,可以使用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;
}