字符转换

View Code
#include<stdio.h>
#include<malloc.h>
void Conver(char *input,char *output);
void main()
{
    /*声明两个char指针,分配内存空间*/
    char *input=(char*)malloc(sizeof(char));
    char *output=(char*)malloc(sizeof(char));
    /*给input指针变量赋值*/
    gets(input);
    /*调用Conver方法*/
    Conver(input,output);
    puts(output);
    putchar('\n');
}

void Conver(char *input,char *output)
{
    int len=0;
    /**首先将所有的字符按a->b,b->c,...z->a进行转换*/
    while(input[len])
    {
        if(input[len]=='z')
        {
            output[len]='a';
        }
        else
        {
            output[len]=input[len]+1;
        }
        ++len;
    }
    /*再将所有字符按照aa->bc,aaa->bcb,zzzz->abab进行转换*/
    /*由于前面已将将a->b,此时只需要将aaa->aba,zzzzz->zazaz*/
    len=0;
    while(output[len])
    {
        char m=output[len];
        int n=len;
        while(output[n])
        {
            if(output[n]!=output[++n])
                break;
        }

        for(int i=0;i<n-len;i++)
        {
            if(i%2==1)
            {
                if(m=='z')
                {
                    output[len+i]='a';
                }
                else
                {
                    output[len+i]=m+1;
                }
            }
        }
        len=n;
    }
    return ;
}
posted @ 2012-09-16 10:33  honging  阅读(111)  评论(0编辑  收藏  举报