将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。
void convert(char *input,char* output)
【输出】 char *output ,输出的字符串
#include <iostream> #include <string> using namespace std; void convert(char *input,char *output) { char *p=output; int len = strlen(input); int i=0; for(int j=i+1;j<=len;) { if(input[i]==input[j]) { if(input[i]=='y') { *p++=input[i]+1; *p++=input[i]-24; }else if(input[i]=='z') { *p++=input[i]-25; *p++=input[i]-24; }else{ *p++=input[i]+1; *p++=input[i]+2; } i=j+1; j=i+1; } else { *p++=input[i]+1; i=j; j=i+1; } } *p='\0'; } void main() { char a[1024]; char result[1024]={'\0'}; while(cin>>a){ convert(a,result); cout<<result<<endl<<endl; } }
原文地址:http://blog.csdn.net/wtyvhreal/article/details/42475017