题意:输入一个整数N,后面N行每行输入一个字符串,字符串中的每个字母由它的下一个字母替换,‘Z'由'A'替换。
输入:整数N,后面N行每行一串字符
输出:每行输出替换后的字符,有前缀。
解题思路:因为有了N的限制,只需要依次输入每个字符串然后再进行替换再依次输出就好了。可以设置一个字符数组进行操作也可以设置string类来操作。
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
string a;
int i=1,n;
cin>>n;
for(;i<=n;i++)
{
cin>>a;
for(int b=0;b<a.size();b++)//确定字符串的长度,否则限制条件错了会造成溢出或者缺少字母。
if(a[b]=='Z')
a[b]='A';
else
a[b]+=1;
cout<<"String #"<<i<<endl<<a<<endl<<endl;
}
return 0;
}
注意:个人感觉这种题最重要的不是替换问题,而是数组有效长度是否限制合理的问题,在数组有效长度之外的存储单元都是随机值,如果数组溢出会发生一些未知错误。
Sample Input
2
HAL
SWERC
Sample Output
String #1
IBM
String #2
TXFSD