关于gets()跟scnaf的一些区别
关于gets()和scnaf的一些区别
字符串统计
Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
Sample Output
6
9
#include <stdio.h>
#include <string.h>
int main()
{
int n,l,w,i;
char a[100];
while(~scanf("%d",&n))
{
while (n--)
{
w=0;
scanf("%s",a); //用scnaf可以AC掉
l=strlen(a);
for(i=0;i<l;i++)
{
if(a[i]<='9'&&a[i]>='0')
w++;
}
printf("%d\n",w);
}
}
return 0;
}
就是向a[100]数组里面输入的时候,如果我用的是scanf ,就可以正常的输入,程序AC啥的都没问题
但为什么我要是用gets(a)的话,就要在向n输入数值的后面加一个getchar()??
就是为什么scanf不会出现回车字符的状况而gets()却会出现?
------解决思路----------------------
gets接收回车 scanf不接受
字符串统计
Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
Sample Output
6
9
#include <stdio.h>
#include <string.h>
int main()
{
int n,l,w,i;
char a[100];
while(~scanf("%d",&n))
{
while (n--)
{
w=0;
scanf("%s",a); //用scnaf可以AC掉
l=strlen(a);
for(i=0;i<l;i++)
{
if(a[i]<='9'&&a[i]>='0')
w++;
}
printf("%d\n",w);
}
}
return 0;
}
就是向a[100]数组里面输入的时候,如果我用的是scanf ,就可以正常的输入,程序AC啥的都没问题
但为什么我要是用gets(a)的话,就要在向n输入数值的后面加一个getchar()??
就是为什么scanf不会出现回车字符的状况而gets()却会出现?
------解决思路----------------------
gets接收回车 scanf不接受