解题思路: 注释
注意事项:
参考代码:
#include<iostream> #include<string> //使用string类 using namespace std; int main() { string a; int c[4]={0,0,0,0};//定义一个数组用来存放每种字符的个数,并初始化为0 getline(cin,a);//输入一整行元素,可以读取空格,遇到回车结束,需要包含头文件string //使用迭代器遍历a中的每个字符 for(string::iterator i=a.begin();i!=a.end();i++) { if((*i>='a'&&*i<='z')||(*i>='A'&&*i<='Z')) c[0]++;//字母 else if(*i>='0'&&*i<='9') c[1]++;//数字 else if(*i==32) c[2]++;//空格,空格的ASCII码值为32 else c[3]++;//其他字符 } cout<<c[0]<<" "<<c[1]<<" "<<c[2]<<" "<<c[3]<<endl;//依次输出 }
0.0分
16 人评分
#include<iostream> using namespace std; string n; int a,b,c,d; int main() { getline(cin,n); for(int i=0;i<n.size();i++) { if((n[i]>64 && n[i]<122) || n[i]==64 || n[i]==122)a++; else if((n[i]>48 && n[i]<58) || n[i]==48 || n[i]==58)b++; else if(n[i]==32)c++; else d++; } cout<<a<<" "<<b<<" "<<c<<" "<<d; return 0; } 这个办法只有50分,麻烦各位帮我看看谢谢
for(string::iterator i=a.begin();i!=a.end();i++) cout<<*i<<endl;//成功 cout<<i<<*i<<endl;//报错 if((*i>='a'&&*i<='z')||(*i>='A'&&*i<='Z')) c[0]++; 请教i与*i怎么理解