• 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 != '')  //遍历整个字符数组
    	{    
             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 = ''; //记得在output后加上结束符号
    }
    
    int main( )
    {
      char input[] = "abbbcd";
      printf("%s
    ",input);
      char output[100];
      convert(input, output);
      printf("%s
    ",output);
      return 0;
    }


  • 相关阅读:
    python可变的参数列表
    python函数中的关键字参数
    python中的else子句
    python3中的range函数
    python列表和分片
    jmeter 参数化四种方式
    redis集群和单点可以共存
    localhost与127.0.0.1的区别是什么
    Pytest单元测试框架-Pytest环境安装
    Nginx、HAProxy、LVS三者的优缺点
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3317882.html
Copyright © 2020-2023  润新知