Преобразование русских символов - C (СИ)
Формулировка задачи:
Проблема: не знаю, как преобразовать нижний регистр русских символов в верхний. С латинскими проблем нет. Можете подсказать, в чём ошибка
char s[32];
int len, i;
printf("Enter string:\n");
gets(s);
len = strlen(s);
for(i=0; i<len; i++)
{
if(s[i] >= 'а' && s[i]<= 'я') toupper(s[i]);
}
printf("%s", s);
return 0;Решение задачи: «Преобразование русских символов»
textual
Листинг программы
if ( s[i] > 'а' && s[i] < 'я') s[i] = s[i]-'a' + 'A';
Объяснение кода листинга программы
В данном коде происходит преобразование русских символов в верхний регистр.
- Проверяется условие: если символ в позиции
iбольше 'а' и меньше 'я', то выполняется следующее действие. - Значение переменной
s[i]уменьшается на 'а' и увеличивается на 'A'. - Результат записывается обратно в переменную
s[i].