题目:输入一串字符,统计字母、空格、数字、其他字符的个数
我本来编写的程序如下,但是遇到了问题,输入的字符串的第一个字符没有被计入,例如输入111www后数字只记为2,输入www111小写字母记为2。
#include
using namespace std;
int main(){
printf("请输入一串字符:");
char a;
int b=0, c=0, d=0, e=0;
cin>>a;
while((a=getchar())!='\n')
{
if(a>='a' && a<='z') {b++;}
else if (a==' ') {c++;}
else if (a>='0' && a<='9') {d++;}
else{e++;}
}
cout<<"小写字母:"<<b<<"空格:"<<c<<"数字:"<<d<<"其他字符:"<<e;
return 0;
}
然后参考了同学的,更改了一下成了这样,刚刚说的bug就没了,有没有人能告诉我这是怎么回事
#include<stdio.h>
using namespace std;
int main(){
printf("请输入一串字符:");
char a;
int b=0, c=0, d=0, e=0;
while((a=getchar())!='\n')
{
if(a>='a' && a<='z') {b++;}
else if (a==' ') {c++;}
else if (a>='0' && a<='9') {d++;}
else{e++;}
}
printf("字母=%d 空格=%d 数字=%d 其他=%d",b,c,d,e);
return 0;
}