您的位置:首页 > 其它

【字符串模拟ONE】2012年省赛最简单的一道PROBLEM_G

2012-10-25 12:47 429 查看
个人当时的第一思路是找 函数打表,用SWITCH实现。结果在倒序的时候抽风了:

for(int j=0;j<clength;j++,clength--)
{
temp=ch1[clength];
ch1[clength]=ch1[j];
ch1[j]=temp;
}

(这不是自寻死路吗,数组显然OT了)

居然debug了半个小时,悲剧啊悲剧(直接用自带的反转函数就可以了) 其实用数组更简单

a[]="70aen^pw5!u"

b[]="loeauvdmsi"

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;
char reserven(char ch)
{
switch(ch)
{
case '7':return 'l';break;
case 'o':return 'o';break;
case 'a':return 'e';break;
case 'e':return 'a';break;
case 'n':return 'u';break;
case '^': return 'v';break;
case 'p': return 'd';break;
case 'w': return 'm';break;
case '5': return 's';break;
case '!': return 'i';break;
case 'u': return 'n';break;
default:return ' ';break;
}
}

int main()
{
int inputnum;
cin>>inputnum;
getchar();
for(int i=1;i<=inputnum;i++)
{
string ch1,ch2;
getline(cin,ch1,'\n');
int clength=ch1.length();

ch2.assign(ch1.rbegin(), ch1.rend());

for(int k=0;k<clength;k++)
{
ch2[k]=reserven(ch2[k]);
}
cout<<"Case "<<i<<": "<<ch2<<endl;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐