高考知识网 时间:2023-08-23 02:56:12
上机时间两小时,3道题
1 字串转换
问题描述:
将输入的字符串(字符串仅包含小写字母‘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"
void convert(char *input,char *output)
{
char c='\0';
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='\0';
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='\0';
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='\0';
tag=0;
}else//当前字符与前一个字符相等,且前面已有2n个字符相同。则按第一次出现算
{
output[i]=(input[i]-'a'+1)%26+'a';
c=output[i];
tag=1;
}
}
}
}
中国点击率最高的一篇文章 !
2023-08-13 03:45:29山东大学在福建高考招生计划人数和专业代码(参考)
2024-06-08 08:59:56广州华南商贸职业学院在福建高考招生计划人数和专业代码(参考)
2024-06-08 08:56:34陕西高考610至620分左右理科可以上什么大学
2024-06-08 08:53:10湖南上东北师范大学多少分 分数线及排名
2024-06-08 08:49:38天津艺术职业学院对比安徽国防科技职业学院哪个好 附分数线排名
2024-06-08 08:46:04保定学院网络与新媒体专业怎么样?录取分数线多少分
2024-06-08 08:42:14河北新闻网两学一做知识竞赛(试题+答案完整版)
2023-08-13 23:55:25河北新闻网两学一做知识竞赛活动试题答案
2023-08-14 04:06:25两学一做学习教育知识竞赛活动10篇
2023-08-21 12:22:13中再集团软件开发岗笔试题和面试题答案
2023-08-19 13:53:34玛氏2018销售笔试题和面试题答案
2023-08-27 11:40:33大唐移动通信综合会计笔试题和面试题答案
2023-08-17 20:19:44