Перенос значения в C

#c

Вопрос:

Я действительно хотел знать, как вы заключаете значение или букву в C. Скажем, если я увеличу «z», как я могу превратить его в » a » и наоборот? То же самое относится и к целым числам. Если у меня есть 9, как я могу превратить его в 0 при увеличении?

Комментарии:

1. как насчет ch = strchr("abcdefghijklmnopqrstuvwxyza", ch)[1] . Если это гарантировано, символ действителен.

Ответ №1:

Оператор, который вы ищете, является модулем % .

Обертывание целых чисел происходит прямолинейно:

 int my_int = /* some value */ int wrapped_my_int = my_int % 10;  

Перенос символов ascii немного сложнее, потому что начальное значение не равно 0. Просто нужно сначала перебазироваться на 0, а затем вернуться к » а » на основе:

 char my_char = /* some value */ char wrapped_my_char = (my_char - 'a') % ('z' - 'a'   1)   'a';