杭电2017

字符串统计

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 38416    Accepted Submission(s): 21297


Problem Description

对于给定的一个字符串,统计其中数字字符出现的次数。

 


Input

输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。

 


Output

对于每个测试实例,输出该串中数值的个数,每个输出占一行。

 


Sample Input

2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf

 


Sample Output

6
9

 

这道题也比较简单,但是要注意的是字符串的输入gets函数和scanf函数的区别:(以下粘贴自网络)

gets()只能接受一个字符串,其用法为gets(string),当你输入一段字符时,其中的空格当做字符串的一部分;scanf函数中空格作为分隔符,例如scanf("%d%d:,&a,&b),当你输入3 (空格) 4 时,遇到空格表示第一个数已经输入完毕,即把3付给a,然后将接受到的第二个数付给b,同时要注意,如果用scanf("%C%C%C",&ch1,&ch2,&ch3)是应连续输入三个字符,例如dfg,如果此时再用空格,例如输入d 空格 f 空格 g,实际是将d付给字符变量ch1,将空格付给ch2,g赋给ch3;当用scanf("%s",str)输入字符串是二者基本上没有区别
代码如下:

#include <stdio.h>
#include <string.h>

int main ()
{
	int n,i,j,count;
	char p[100];

	scanf("%d",&n);

	for(i=0; i<n; i++)
	{
		count=0;

		scanf("%s",p);
		
		for(j=0; j<strlen(p); j++)
		{
			if(p[j]>='0'&&p[j]<='9')
		          count++;
		}
		printf("%d\n",count);

	}

	return 0;
}


你可能感兴趣的:(杭电2017)