字符串类问题

1014加密算法

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

编写加密程序,加密规则为:将所有字母转化为该字母后的第三个字母,即A->D、B->E、C->F、……、Y->B、Z->C。小写字母同上,其他字符不做转化。输入任意字符串,输出加密后的结果。

例如:输入"I love 007",输出"L oryh 007"

输入描述:

1输入一行字符串,长度小于100。

输出描述:

1输出加密之后的结果。

输入样例:

1I love 007

输出样例:

1L oryh 007
 1#include<iostream>
 2#include<string>
 3using namespace std;
 4int main(){
 5    string s;
 6    getline(cin,s);
 7    for(int i=0;i<s.size();i++){
 8        if('A'<=s[i]&&s[i]<='Z'){
 9            s[i]+=3;
10            if(s[i]>'Z'){
11                s[i]-=26;
12            }
13        }
14        if('a'<=s[i]&&s[i]<='z'){
15            s[i]+=3;
16            if(s[i]>'z'){
17                s[i]-=26;
18            }
19        }
20    }
21    cout<<s;
22    return 0;
23}

1012字符移动

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

输入一个字符串,将其中的数字字符移动到非数字字符之后,并保持数字字符和非数字字符输入时的顺序。例如:输入字符串“ab4f35gr#a6”,输出为“abfgr#a4356”。

输入描述:

1输入一行字符串,长度小于100。

输出描述:

1输出结果。

输入样例:

1ab4f35gr#a6

输出样例:

1abfgr#a4356
 1#include<iostream>
 2#include<string>
 3using namespace std;
 4int main(){
 5    string s,s1,s2;
 6    cin>>s;
 7    for(int i=0;i<s.size();i++){
 8        if('0'<=s[i]&&s[i]<='9'){
 9            s1+=s[i];
10        }else{
11            s2+=s[i];
12        }
13    }
14    cout<<s2+s1<<endl;
15    return 0;
16}

1292字母统计

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

输入一行字符串,计算其中A-Z大写字母出现的次数

输入描述:

1案例可能有多组,每个案例输入为一行字符串。

输出描述:

1对每个案例按A-Z的顺序输出其中大写字母出现的次数。

输入样例:

1DFJEIWFNQLEF0395823048+_+JDLSFJDLSJFKK

输出样例:

 1A:0
 2B:0
 3C:0
 4D:3
 5E:2
 6F:5
 7G:0
 8H:0
 9I:1
10J:4
11K:2
12L:3
13M:0
14N:1
15O:0
16P:0
17Q:1
18R:0
19S:2
20T:0
21U:0
22V:0
23W:1
24X:0
25Y:0
26Z:0
 1#include<iostream>
 2#include<string>
 3#include<array>
 4using namespace std;
 5
 6int main(){
 7    string s;
 8    while(cin>>s){
 9        array<int,27> res={0};
10        for(int i=0;i<s.size();i++){
11            if(s[i]>='A'&&s[i]<='Z'){
12                res[s[i]-'A'+1]++;
13            }
14        }
15        for(int i=1;i<=26;i++){
16            cout<<(char)('A'+i-1)<<":"<<res[i]<<endl;
17        }
18    }
19    return 0;
20}

1240首字母大写

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 在字符串中,单词之间通过空白符分隔,空白符包括:空格(’ ‘)、制表符(’\t’)、回车符(’\r’)、换行符(’\n’)。

输入描述:

1输入一行:待处理的字符串(长度小于100)。

输出描述:

1可能有多组测试数据,对于每组数据,
2输出一行:转换后的字符串。

输入样例:

1if so, you already have a google account. you can sign in on the right.

输出样例:

1If So, You Already Have A Google Account. You Can Sign In On The Right.
 1#include<iostream>
 2#include<string>
 3using namespace std;
 4int main(){
 5    string s;
 6    while(getline(cin,s)){
 7        for(int i=0;i<s.size();i++){
 8            if(i==0){
 9                if(s[i]>='a'&&s[i]<='z'){
10                    s[i]+='A'-'a';
11                }
12            }else if(s[i-1]==' '||s[i-1]=='\t'||s[i-1]=='\r'||s[i-1]=='\n'){
13                if(s[i]>='a'&&s[i]<='z'){
14                    s[i]+='A'-'a';
15                }
16            }
17        }
18        cout<<s<<endl;
19    }
20    return 0;
21}

1394统计单词

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。 (凡是以一个或多个空格隔开的部分就为一个单词)

输入描述:

1输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。

输出描述:

1可能有多组测试数据,对于每组数据,
2输出字符串中每个单词包含的字母的个数。

输入样例:

1hello how are you.

输出样例:

15 3 3 3
 1#include<iostream>
 2#include<string>
 3#include<vector>
 4#include<sstream>
 5using namespace std;
 6int main(){
 7    string s;
 8    while(getline(cin,s,'.')){
 9        istringstream iss(s);
10        string token;
11        vector<string> tokens;
12        while(iss>>token){
13            tokens.push_back(token);
14        }
15        for(auto it=tokens.begin();it!=tokens.end();it++){
16            cout<<(*it).size()<<" ";
17        }
18    }
19    return 0;
20}

1027删除字符串2

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

给你一个字符串S,要求你将字符串中出现的所有"gzu"(不区分大小写)子串删除,输出删除之后的S。

就是说出现“Gzu”、“GZU”、“GZu”、“gzU"都可以删除。

输入描述:

1输入一行字符串S,长度不超过100。

输出描述:

1输出进行删除操作之后的S。

输入样例:

1GzzGzukkgzUuu

输出样例:

1Gzzkkuu
 1#include<iostream>
 2#include<string>
 3using namespace std;
 4int main(){
 5    string s;
 6    cin>>s;
 7    for(int i=0;i<s.size()-2;i++){
 8        if((s[i]=='g'||s[i]=='G')&&(s[i+1]=='Z'||s[i+1]=='z')&&(s[i+2]=='U'||s[i+2]=='u')){
 9            s.erase(i,3);
10        }
11    }
12    cout<<s;
13    return 0;
14}