将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:
来源:互联网 发布:征途服务端linux版 编辑:程序博客网 时间:2024/04/28 19:31
问题描述:
将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。
要求实现函数:
void convert(char *input,char* output)
【输入】 char *input , 输入的字符串
【输出】 char *output ,输出的字符串
【返回】 无
示例
输入:char*input="abcd"
输出:char*output="bcde"
输入:char*input="abbbcd"
输出:char*output="bcdcde"
#include<iostream>using namespace std;void add(char *str,int len,char *outstr);int main(){char str[20];gets(str);int len=strlen(str);char outstr[20];add(str,len,outstr);cout<<outstr<<endl;system("pause");return 0;}void add(char *str,int len,char *outstr){int count=0,m=1;int i=0;for(i=0;i<len;i++){if(str[i]!=str[i+1])outstr[count++]=str[i]+1;else{outstr[count++]=str[i]+1;outstr[count++]=str[i]+2;i++;//易错,因为重进for循环的时候还会有个i++,相当于i=i+2;}}outstr[count]='\0';int outlen=strlen(outstr);while(outlen){if(outstr[outlen-1]>'z')outstr[outlen-1]=outstr[outlen-1]-26;outlen--;}}
参考答案:
void convert(char *input,char *output) { char c='�'; int tag=0; int len=strlen(input); for(int i=0;i { if(input[i]!=c)//当前字符与前一个字符不相等,则该字符+1 { output[i]=(input[i]-'a'+1)%26+'a'; c=input[i]; tag=1; }else { if(tag==1)//当前字符与前一个字符相等,且前面只有一个字符相同 { output[i]=(input[i]-'a'+2)%26+'a'; c='�'; tag=0; }else//当前字符与前一个字符相等,且前面已有2n个字符相同。则按第一次出现算 { output[i]=(input[i]-'a'+1)%26+'a'; c=output[i]; tag=1; } } } } void convert(char *input,char *output) { char c='�'; int tag=0; int len=strlen(input); for(int i=0;i { if(input[i]!=c)//当前字符与前一个字符不相等,则该字符+1 { output[i]=(input[i]-'a'+1)%26+'a'; c=input[i]; tag=1; }else { if(tag==1)//当前字符与前一个字符相等,且前面只有一个字符相同 { output[i]=(input[i]-'a'+2)%26+'a'; c='�'; tag=0; }else//当前字符与前一个字符相等,且前面已有2n个字符相同。则按第一次出现算 { output[i]=(input[i]-'a'+1)%26+'a'; c=output[i]; tag=1; } } } }
0 0
- 将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:
- 将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc
- 输入一个字符串,如果第二个字符是字母(a~z ,A~Z),则将其大写变小写,小写变大写,如果不是字母则将其修改为空格,并将修改后的字符串输出。
- 华为上机笔试之通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
- 【C语言】编写一个程序,当输入小写字母a,输出大写字母Z,当输入小写字母b,输出大写字母Y,以此类推,当输入小写字母z,输出大写字母A。
- 编写一个程序,输入一串不超过60个字符组成的且不包含换行符的字符串,将字符串中的A到Z的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,并且要求只对A到Z的字母重新排列,其
- 实现简易字符串压缩算法:一个长度最大为128的字符串, 由字母a-z或者A-Z组成,将其中连续出现2次以上(含2次)的字母转换为字母和出现次数,以达到压缩目的
- Java编程机试:获取某一字符串中(只要字母),每一个字母出现的次数输出格式为a(x)b(y)c(z).....m(n)
- 使用C语言,将输入字符串中的大写的字母(A~Z)选出来,组成新的字符串输出。
- c语言从键盘上输入一串字符串,输入两个数字a和b,截取字符串第a个到第b个字母,并输出截取后的字符串
- 含有大小写字母的字符串按照a-zA-Z排序
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
- 我第一个Python教程笔记
- 【多校第9场】【组合数学】【区间dp】【Expression】
- R语言基础绘图包--控制axis label位置--par(mgp)与mtext
- 【套汇】【bell-ford变形】
- 【vijos P1010】清帝之惑之乾隆 c++题解
- 将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:
- 胜利大逃亡
- mac 上调试国产手机 手机连接不上
- class 文件格式
- 时间转换
- 第四周第二天
- 【ODPS】本地数据库数据批量上传到ODPS中
- Fragment 实现tab页卡切换并保存界面状态,动态添加Fragment
- Android学习0818<二>(界面布局)