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

本文分享了一种使用C++实现字符串反转及字符映射转换的方法,并通过具体代码示例展示了如何利用标准库函数简化这一过程。作者首先尝试了自定义的循环交换法进行字符串反转,但发现使用内置的reverse函数更为简洁高效。此外,还实现了一个字符映射函数,用于将特定字符替换为其对应的映射字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人当时的第一思路是找 函数打表,用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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值