poj 2041 Unreliable Message 字符串处理

水的问题。直接附着到代码。

//poj 2041
//sep9
#include <iostream>
using namespace std;
char mode[128];
char ori[128],res[128];
int len;
void J()
{	
	ori[0]=res[len-1];
	for(int i=1;i<len;++i)
		ori[i]=res[i-1];
}
void C()
{
	ori[len-1]=res[0];
	for(int i=0;i<len-1;++i)
		ori[i]=res[i+1];
}
void E()
{
	int i;
	for(i=0;i<len/2;++i)		
		ori[i]=res[i+(len+1)/2];
	if(len%2==1)
		ori[len/2]=res[len/2];
	for(i=(len+1)/2;i<len;++i)
		ori[i]=res[i-(len+1)/2];
}
void A()
{
	for(int i=0;i<len;++i)
		ori[i]=res[len-1-i];
}
void P()
{
	for(int i=0;i<len;++i)
		if(res[i]<='9'&&res[i]>='0')
			ori[i]=res[i]=='0'?

'9':res[i]-1; else ori[i]=res[i]; } void M() { for(int i=0;i<len;++i) if(res[i]<='9'&&res[i]>='0') ori[i]=res[i]=='9'?'0':res[i]+1; else ori[i]=res[i]; } int main() { int i,n; scanf("%d",&n); while(n--){ scanf("%s%s",mode,res); len=strlen(res); ori[len]='\0'; for(i=strlen(mode)-1;i>=0;--i){ if(mode[i]=='J') J(); else if(mode[i]=='C') C(); else if(mode[i]=='E') E(); else if(mode[i]=='A') A(); else if(mode[i]=='P') P(); else if(mode[i]=='M') M(); strcpy(res,ori); } printf("%s\n",res); } return 0; }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值