| 发表于:2007-05-26 11:28:55 楼主 |
#include <cstdlib> #include <iostream> #include <map> #include <string> using namespace std; map <int,int> m1; map <char,int> m2; string s; int cnt; int main(int argc, char *argv[]) { cout < < "input string: " < <ends; cin> > s; for(string::iterator ix=s.begin();ix!=s.end();ix++){ if(isdigit(*ix)){ cnt=count(s.begin(),s.end(),*ix); m1[*ix]=cnt;} else{ cnt=count(s.begin(),s.end(),*ix); m2[*ix]=cnt; } } for(map <int,int> ::iterator it=m1.begin();it!=m1.end();it++) cout < < "数字: " < <(*it).first < < " 出现: " < <(*it).second < < "次. " < <endl; for(map <char,int> ::iterator it=m2.begin();it!=m2.end();it++) cout < < "字母: " < <(*it).first < < " 出现: " < <(*it).second < < "次. " < <endl; system( "pause "); return exit_success; } 我觉得应该是 输入: 11av 输出: 数字:1 出现:2次. 字母:a 出现:1次. 字母:v 出现:1次. 但是. 我的dev-c++结果是 数字:49 出现:2次. 字母:a 出现:1次. 字母:v 出现:1次. 为什么,,高手指点一下 |
|
|
|
|