题目描述
小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。
输入
输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。
输出
输出整数个数(不是数字字符个数哦)。
样例输入 Copy
365grh 27ha578
样例输出 Copy
3
提示
注意:010是两个数字,0和10
/*该题目容易思考类型不全而错误*/
//注意这些样例:010是两个数字,0和10
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,num,prior;
num=prior=0; //用prior记录str[i]的上一个元素是否为数字,是则为1,不是则为0
char str[1000];
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='0' && prior==0) //如果str[i]为0,且它的上一个元素不为数字
{
num++;
prior=0; //因为str[i]的上一个不为数字,所以也把0赋值给prior
}
if(str[i]>'0' && str[i]<='9') //如果str[i]为1到9之间的一个数字
{
if(prior==0) //若str[i]的上一个元素不是数字
{
num++;
prior=1;
}
}
else //如果str[i]不是1到9的数字
{
if(str[i]!='0') //如果str[i]不是数字
prior=0;
}
}
printf("%d",num);
return 0;
}
本文章和代码参考了该文章的思想,但不以盈利为目的,同时在此表示谢意