题目描述
小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。
输入
输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。
输出
输出整数个数(不是数字字符个数哦)。
样例输入 Copy
365grh 27ha578样例输出 Copy
3提示
注意:010是两个数字,0和10
来源/分类
编码:
#include<stdio.h>
#include<string.h>
int main()
{
char s[1000];
int i=0,j=0;
int t=0;
scanf("%[^\n]",s);
if(s[0]=='0')
{
j=1;
t=1; //用来标记是s[i]=0
}//下述属于字符串首字母为0或为非数字的情况,如果首字符为1~9,则应该加 1
for(i=1;i<strlen(s);i++)
{
if(s[i]=='0'&&((s[i-1]<'0'||s[i-1]>'9')||t==1))//判断是不是a0000....类型的或字符串开头为000类型的
{j++;
t=1;
}
else if(s[i]>'0'&&s[i]<='9'&&((s[i-1]<'0'||s[i-1]>'9')||t==1))//判断是不是a097或a987类型的
{j++;
t=0;
}
else t=0; //排除上述所有情况只剩aaa类型的
}
if(s[0]>'0'&&s[0]<='9') //判断首字符为1~9的情况,结果加 1 .
j+=1;
printf("%d",j);
return 0;
}