英文字母替换加密(后移n位)

思路:首先写出后移(前移)1位的情况 , 然后逐渐累加至N位情况

#include
void test(char arr[] , int n )
{
    int i = 0;
    int z = 0;
    if( n < 0 )
    {
        while( i != n )
        {
            for( z = 0 ; arr[z] != '\0' ; z++)
            {
                if( arr[z] <= 'z' && arr[z] >= 'a' )
                {
                    if( arr[z] == 'a' )
                        arr[z] = 'z';
                    else
                    {
                        arr[z] = arr[z] - 1;
                    }
                }
                else if( arr[z] <= 'Z' && arr[z] >= 'A' )
                {
                    if( arr[z] == 'A' )
                    {
                    arr[z] = 'Z';
                    }
                    else
                    {
                        arr[z] = arr[z] - 1;
                    }
                }
            }
            i--;
        }
    }
    else if( n == 0 )
    {
        ;
    }
    else 
    {
        while( i != n )
        {
            for( z = 0 ; arr[z] != '\0';z++)
            {
                if( arr[z] <= 'z' && arr[z] >= 'a')
                {
                    if( arr[z] == 'z')
                    {
                        arr[z] = 'a';
                    }
                    else
                    {
                        arr[z] = arr[z] + 1;
                    }
                }
            }
            i++;
        }
    }
}
int main()
{
    int i = 0;
    int j = 0;
    int n = 0;
    char arr[128] = { '\0' };
    gets(arr);
    scanf("%d",&n);
    test(arr,n);
    puts(arr);
    return 0;
}

你可能感兴趣的:(算法,java,数据结构)