hdu 2017 字符串统计
题目描述
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
Sample Output
6
9
题目难点
1. 只定义一个字符型数组,n次存储字符串,由于每次数据都会被覆盖,就意味着要在下一个输入之前就把这一次字符串当中的数值个数计算出来,并保存起来
2. 由于Count数据也会被覆盖,所以把每次的Count都存储到一个整形数组中,最后再统一输出即符合题目要求
问题解答
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
int n,Count,len,b[50];
while( scanf("%d",&n)!=EOF )
{
/*进行n次循环,录入,数据遍历,查找*/
for(int i=0;i<n;++i)
{
Count=0;//每次录入新的字符串都初始化Count
scanf("%s",a);//录入字符串的表示方法
len=strlen(a);
for(int j=0;j<len;++j)
if( a[j]>='0' && a[j]<='9' ) Count++;//如果满足就计数
b[i]=Count;//存储Count的值
}
for(int i=0;i<n;++i) printf("%d
",b[i]);
}
return 0;
}