1 //任意输入字符串,可以包括任何字符。 2 //1、统计字符串中各个字符的个数,包括空格 3 //2、去除单词中间多余的空格,包括字符串首尾空格 4 //3、在数字和字母中间插入字符 5 //4、将单词提取出来,并统计单词的字母个数 6 //5、将字母排序,字母大小写的,保持原来先后顺序 7 //6、将指定的字符串替换为另一个字符串 8 #include<cstdio> 9 #include<iostream> 10 #include<cstring> 11 #include<sstream> 12 #include<stdlib.h> 13 using namespace std; 14 int w[210]={0}; 15 int judge(char c){ 16 if((c>='a'&&c<='z') || (c>='A'&&c<='Z')) return 1; 17 if(c>='0'&&c<='9') return 0; 18 } 19 void Sta(string s){//1、统计字符串中各个字符的个数,包括空格 20 int i; 21 for(string ::iterator it=s.begin();it!=s.end();it++){ 22 i=*it; 23 w[i]++; 24 } 25 for(int i=0;i<=210;i++){ 26 if(w[i]!=0){ 27 printf("%c %d\n",i,w[i]); 28 } 29 } 30 } 31 string deleteSpace(string s){//2、去除单词中间多余的空格,包括字符串首尾空格 32 stringstream ss(s); 33 string t,str; 34 while(ss>>t){ 35 str=str+" "+t; 36 } 37 return str.substr(1,str.length()-1); 38 } 39 string Insert(string s,string s1){//在数字和字母中间插入指定字符串 40 string s2; 41 int len=s.length(); 42 for(int i=0;i<len;i++){ 43 if((judge(s[i])==1 && judge(s[i+1])==0) || (judge(s[i])==0 && judge(s[i+1])==1) && i<len-1){ 44 s2+=s[i]+s1; 45 continue; 46 } 47 s2+=s[i]; 48 } 49 cout<<s2<<endl; 50 return s2; 51 } 52 string Sta_word(string s){//提取单词,输出每个单词的个数 53 stringstream ss(s); 54 string t; 55 while(ss>>t){ 56 cout<<t<<" "<<t.size()<<endl; 57 } 58 return s; 59 } 60 int main(){ 61 string str; 62 while(getline(cin,str)){//切记,getline会读取换行符 63 Insert(str,"_"); 64 } 65 system("pause"); 66 return 0; 67 }