11016: 水-17
内存限制:128 MB
时间限制:1.000 S
提交:9
解决:4
评测方式:文本比较
命题人:
题目描述
小明最近学会了许多网络热梗,但是小明的爸爸——大明却听不懂思密达
而大明为了紧跟潮流,便用蹩脚的话来复数小明说的网络热梗
有一天,小明偶然听到了他爸爸用蹩脚的话来复数小明说的网络热梗时的话语,撅的很搞笑,便每天听大明练习小明说的网络热梗
最后小明摸索出了一个规律:
1.说的大写字母、小写字母、数字的ASCLL码都+1
2.有些说的小写词组不规则:
ji => li
kun => ken
因此,小明想要你帮他做一个模仿他爸爸说话的程序(你也知道小明的电脑上…………)
输入
第一行一个整数n
接下来的n行,分别有一个字符串a,代表小明说的网络热梗(间隔用“_”下划线)
输出
共输出n行,每一行一个改变后的a
样例输入 复制
2
ji_ni_tai_mei
cai_jiu_duo_lian
样例输出 复制
kj_oj_ubj_nfj
dbj_liv_evp_mjbo
提示
【数据范围】:
1<=n<=10
【提示】:
这题也是肥肠的煎蛋的好叭!
只包含字母、数字及下划线“_”。
可以用函数(要用万能油或<cctype>头文件):
isalpha(包括小写字母和大写字母) islower(小写字母) isupper(大写字母) isdigit(数字) isalnum(大写字母、小写字母、数字)
模板:
#include<bits/stdc++.h> using namespace std; int n; int main(){ cin>>n; for(int i=1;i<=n;i++){ string a,b=""; cin>>a; for(int j=0;j<a.size();j++){ b[j]=a[j]; if(???) b[j]+=1; else if(???) b[j]='a'; else if(???) b[j]+=1; else if(???) b[j]='A'; else if(???) b[j]+=1; else if(???) b[j]='0'; } for(int j=1;j<a.size();j++){ if(b[j]=='k' && b[j+1]=='j'){ ??? }else if(b[j]=='l' && b[j+1]=='v' && b[j+2]=='o'){ ??? } } for(int j=0;j<a.size();j++) cout<<b[j]; cout<<endl; } return 0; }
看其他问题的方法见:水-11