H面试程序(27):字串转换

时间:2022-01-05 08:36:57
//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 ,输出的字符串
//【返回】 无
//40min
//示例
//输入:char*input="abcd"
//输出:char*output="bcde"
//输入:char*input="abbbcd"
//输出:char*output="bcdcde"
#include<stdio.h>
#include<assert.h>
void convert(char *input,char* output)
{
assert(input);
assert(output);
while(*input != '\0') //遍历整个字符数组
{
if(*input == *(input+1)) //当前字符和下一字符相同的情况
{ if(*input =='z') //因为字母‘z’的情况比较特殊,所以单独分开
{
*output = (*input-25);
*(output+1) =(*input - 24);
output = output + 2;
input = input + 2;
}
else //
{
*output = (*input + 1);
*(output+1) = (*input + 2);
output = output + 2;
input = input + 2;
} }
else //当前字符和下一字符不相同的情况
{
if(*input =='z')//因为字母‘z’的情况比较特殊,所以单独分开
{
*output++ = (*input-25); input++; }
else
{
*output++ = (*input + 1);
input++;
}
} }
*output = '\0'; //记得在output后加上结束符号
} int main( )
{
char input[] = "abbbcd";
printf("%s\n",input);
char output[100];
convert(input, output);
printf("%s\n",output);
return 0;
}

H面试程序(27):字串转换的更多相关文章

  1. H面试程序(10): 字符串包含问题

    题目描述:判断第二个字符串中的元素是否都能在第一个字符串中找到: 注意:和字符串的字串的问题有所区别,如第一个字符串为  abcdefg,第二个字符串为 aaabc,第二个字串还是包含于第一个字符串 ...

  2. H面试程序(11): 判断字符串是否包含子串问题

    题目描述:                        如字符串str1为''abcdef'''                       字符串str2为'' bc''; 则字符串str1中含有 ...

  3. H面试程序(28):字符串处理转换

    //2 字符串处理转换 //问题描述: //在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成, //其他非字母字符视为单词的间隔,如空格.问号.数字等等:另外单个字母不算单词): //找 ...

  4. H面试程序(12): 输出字符串中第一个只出现一次的字母

    题目描述: 若字符串str为'' sbdddsbfc'',则输出 f; 若字符串str为''aabbccdd'',则输出:字符串str中的字符都出现两次以上 #include <stdio.h& ...

  5. H面试程序(29):求最大递增数

    要求:求最大递增数 如:1231123451 输出12345 #include<stdio.h> #include<assert.h> void find(char *s) { ...

  6. H面试程序(15): 冒泡排序法

    #include<stdio.h> #include<assert.h> void display(int * a, int n) { for(int i = 0; i &lt ...

  7. H面试程序(16): 简单选择排序

    #include<stdio.h> #include<assert.h> void display(int * a, int n) { assert(a); for(int i ...

  8. H面试程序(4):翻转句子中单词的顺序 &period;

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“I am a student.”,则输出“stude ...

  9. H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒

    编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒. 如输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005年 1 月 1 日 0 时 0 分 0 秒. ...

随机推荐

  1. memcached安装

    memcached安装 一.安装gcc # yum -y install gcc 二.安装libevent # wget http://www.monkey.org/~provos/libevent- ...

  2. remove 清除binlog

    #!/bin/bash DATACFG=/etc/my.cnf DATADIR=`awk /^datadir/ $DATACFG|awk -F"=" '{print $2}'` D ...

  3. &lbrack;CareerCup&rsqb; 2&period;4 Partition List 划分链表

    2.4 Write code to partition a linked list around a value x, such that all nodes less than x come bef ...

  4. 【收藏】Myeclipse优化

    1 .关闭MyEclipse的自动validation       windows > perferences > myeclipse > validation       将Bui ...

  5. 计算 MD5值

    // // MD5Value.h // iOSEdu // // Created by littest on 16/2/26. // Copyright © 2016年 littest. All ri ...

  6. hibernate的dao操作不能提交到数据库问题的解决

    刚学的时候总是各种错误,解决方法也无厘头的很 将UserDAO里面的的save方法修改try { getSession().save(transientInstance); log.debug(&qu ...

  7. &period;net随笔--不好归类的

    1..cs .Designer.cs .resx三种文件 cs是类文件,不介绍了.Designer.cs是visual studio对cs类文件的自动生成代码的一种补充,在编辑器里用视图的方式对win ...

  8. margin-top的兼容问题

    产生的条件:子元素给了margin-top,并且父元素没有浮也没有其他样式,浏览器解析的结果是父元素下去了. 解决方法:1.给子元素或者父元素添加浮动,缺点:如果不需要浮动,添加浮动也页面布局会乱 2 ...

  9. Mybatis 报错 There is no getter for property named &&num;39&semi;&ast;&ast;&ast;&&num;39&semi; in &&num;39&semi;class java&period;lang&period;String&&num;39&semi;

    在mapper.xml中 , 如果单参数是String类型 , 且在sql语句中对参数进行了判断 , 如下 when 中的判断 , 如果出现 if 判断也是一样的.都需要把判断中的参数用 _param ...

  10. 富文本框vue-quill-editor的使用

    vue-quill官网:https://www.npmjs.com/package/vue-quill-editor quill官网:https://quilljs.com/docs/quicksta ...