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

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

#include<stdio.h>
int main()
{
 int i,j,n,k=0;
 char  a[1000];
    scanf("%d",&n);
 getchar();//吸收一个字符
  while(n--)//当n大于0时
  {
  gets(a);//从键盘读取字符串存入数字在末尾添加'\0'字符
  for(j=0;a[j]!='\0';j++)
  {
   if(a[j]>='0'&&'9'>=a[j])
    k++;
  }
  printf("%d\n",k);
  k=0;
  }
 return 0;
}

1、gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加’\0’字符。其调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。
2、gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
3、总结:gets()函数读取到\n(我们输入的回车)于是停止读取,但是它不会把\n包含到字符串里面去。然而,和它配合使用的puts函数,却在输出字符串的时候自动换行。
4、gets(s) 函数中的变量s为一字符串指针。如果为单个字符指针,编译连接不会有错误,但运行后内存溢出错误。

发布了24 篇原创文章 · 获赞 3 · 访问量 4838

猜你喜欢

转载自blog.csdn.net/weixin_43730203/article/details/103968467
今日推荐