1150: 数数多少个整数
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1378 Solved: 805
Submit Status Web Board
Description
小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。
Input
输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。
Output
输出整数个数(不是数字字符个数哦)。
Sample Input
5436grh 74h74 57 74rg 63664greg743
Sample Output
7
HINT
Source
#include<iostream>
#include<string.h>
#include<cmath>
using namespace std;
int main ()
{
char str[10001];
gets(str);
int len =0;
len=strlen(str);
//cout<<len<<endl;
int flag=0,count=0;
for (int i=0 ; i<len ; i++)
{
if ( str[i]>='0' && str[i]<='9')
{
flag=1;
continue; //跳过本次循环继续下次的循环
} //每次遇到数字继续循环,直到下一个是字母运行else
else
{
if ( flag==1 )
{
count++;
}
flag=0; //将flag置为0,继续寻找下一个整数
}
}
if ( flag==1 ) //for循环遇到的所有整数flag都被置为0
count++; //最后一个整数后面没有了,直接退出循环少算了
cout<<count<<endl;
return 0;
}
#include<iostream>
#include<cstring>
using namespace std;
int main ()
{
char str[10001]={0};//初始化
gets(str);
int len =0,count=0,flag=0;
len = strlen(str) ;
for (int i=0 ; i<len ; i++)
{
if (str[i]>='0' && str[i] <= '9')
{
if (flag==0) //两个if同时满足时count才加一
{
count++;
flag=1;
}
}
else //遇到的如果是字母的话置为0后
{ //到下一层循环,如果开头是数字加一,则第二个数字就不再加一,因为flag置为1了
//保证了不能重复计算数字
flag=0;
}
}
cout<<count<<endl;
return 0;
}