Мне кажется, что вы пытаетесь сделать это на самом базовом уровне.При этом вы делаете одно ошибочное предположение.
Вы не получите заглавную версию письма, добавив 64 к нему.Более того, просто ввести магическое число неясно и может быть неправильно для другого набора символов.
Попробуйте изменить string[i] += 64;
на string[i] += 'A' - 'a';
.Это будет работать во всех наборах символов, где есть постоянная разница между заглавными и строчными буквами.
Теперь, в некоторых случаях это не получитсяНапример, в EBCDIC буквы не являются смежными, поэтому диапазон от «a» до «z» не является буквенным.Вот почему в реальном коде вы используете стандартные функции, такие как isalpha()
и toupper()
, но это хорошо в качестве упражнения.