Возвращение к началу алфавита после z - PullRequest
0 голосов
/ 11 ноября 2019

Я работаю над проблемой для школы, и мне нужно написать программу, которая вращает 13 символов. Я сделал программу, но она превращается в некоторых странных персонажей. Я хочу, чтобы он смотрел назад на «а» после того, как он достигает «z» как в верхнем, так и в нижнем регистре. По сути, я хочу ограничить свои параметры AZ и az.

Попробовал смесь операторов while и if, и в итоге получил только некоторые операторы if. Я знаю, что они не правы, но он работает в своем текущем состоянии.

#include <iostream>
using namespace std;

//Function Prototypes
char rot(char c);
int mylen(char c[]);

int main()
{
    char in[120], out[120];
    int i;  // index into in

    cout << "Enter text: ";
    cin.getline(in,120);
    while (strcmp(in, "exit"))
    {
        for (i = 0; i < mylen(in); i++)
        {
            out[i] = rot(in[i]);
        }
        out[i++] = '\0';

        cout << out << endl;
        cout << endl << "Enter some more text: ";
        cin.getline(in,120);
    }


    return 0;
}

char rot(char c)
{
        if (c >= 'a' and c <= 'z')
        c = c + 13;

    if (c > 'z')
        c = c - 26;


else if (c >= 'A' and c <= 'Z')

        c = c + 13;

    if (c > 'Z')
        c = c - 26;

    return c;
}

int mylen(char c[])
{
    int cnt = 0;

    while (c[cnt] != '\0')
        cnt++;

    return cnt;
}

Я просто хочу, чтобы он повернул 13 символов, а когда кто-то вводит повернутый код, чтобы повернуть его снова 13 символов.

...