首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-09-12 
H面试程序(27):字串转换//1 字串转换//问题描述://将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如

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

 

 

//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;}


 

 

热点排行