Цикличная клавиатура

Для данной буквы латинского алфавита нужно вывести справа стоящую букву на стандартной клавиатуре. При этом клавиатура замкнута, т.е. справа от буквы «p» стоит буква «a», от буквы «l» стоит буква «z», а от буквы «m» — буква «q».

Входные данные содержат один символ — маленькую букву латинского алфавита.

Выходные данные: следует вывести букву стоящую справа от заданной буквы, с учетом замкнутости клавиатуры.

Решение:

  1. Определим массив символов путем ввода с клавиатуры всех латинских букв подряд от "q" до "m". У нас получится "qwertyuiopasdfghjklzxcvbnmq".
  2. Так как у нас клавиатура по условию задачи зациклена, то добавим в конец массива первый символ "q". Получим "qwertyuiopasdfghjklzxcvbnmq". Это позволит нам сократить код. Иначе пришлось бы в начале проверить введенный символ на равенство "m" и выводить "q". Надеюсь этот момент понятен.
  3. В цикле ищем индекс введенного символа и выводим следующий символ как ответ. В массиве у нас 27 символов, но проверять будем 26, так как последний символ повторяет первый.
  4. Так как дальше проверять смысла нет, то прерываем цикл после вывода ответа. Это сокращает время работы приложения (естественно незначительно).

Код:

#include <iostream>

main() {
char c, * k = "qwertyuiopasdfghjklzxcvbnmq";
	std::cin >> c;
	for (int i = 0; i < 26; ++i){
		if (c == k[i]){
			std::cout << k[i+1];
			break;
		}
	}
}