小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。
输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。
输出整数个数(不是数字字符个数哦)。
。。。
#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; }
