【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

发布时间:2016-12-8 2:32:38 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数",主要涉及到【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数方面的内容,对于【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数感兴趣的同学可以参考一下。

方法一: 库函数挺好用的。 #include <stdio.h> #include <string.h> #include <ctype.h> int main(){ char str[10000]; char *p = NULL; int n1; int n2; int n3; int n4; while(gets(str)){ p = str; n1 = n2 = n3 = n4 = 0; while(*p){ if(isdigit(*p)) n1++; else if(isalpha(*p)) n2++; else if(*p == ' ') n3++; else n4++; ++p; } printf("digit = %d alpha = %d space = %d other = %d\n",n1,n2,n3,n4); } return 0; } 方法二: 复习一下函数对象。 #include <iostream> #include <string> using namespace std; class GET{ public: int n[4]; GET(){this->clear();} void clear(){memset(n,0,sizeof(n));} void operator () (const char &c){ if(isdigit(c)) n[0]++; else if(isalpha(c)) n[1]++; else if(c == ' ') n[2]++; else n[3]++; } friend ostream & operator << (ostream &o,GET &g){ o << "digit = " << g.n[0] << " "; o << "alpha = " << g.n[1] << " "; o << "space = " << g.n[2] << " "; o << "other = " << g.n[3] << "\n"; return o; } }; int main(){ string str; int n[4]; while(getline(cin,str)){ GET res = for_each(str.begin(),str.end(),GET()); cout << res; } return 0; }

上一篇:请描述下Activity的生命周期
下一篇:黑马程序员——内省JavaBean总结

相关文章

相关评论