Работа с русским алфавитом - C (СИ)
Формулировка задачи:
Допустим, требуется решить такую задачу.
Пользователь вводит строку. Заменить в строке буквы Ё на Е.
Такой вариант не работает:
Как сделать правильно?
#include <stdio.h> int main() { char str[1000]; gets(str); int i, n = 0; for (i = 0; str[i] != '\0'; ++i) if (str[i] == 'Ё') str[i] = 'Е'; printf("%s\n", str); return 0; }
Решение задачи: «Работа с русским алфавитом»
textual
Листинг программы
int main(int argc,char** argv) { char pszText[MAX_PATH +1]; gets(pszText); for (int ii = 0; pszText[ii]; ++ii) { if ((unsigned char)pszText[ii] == 0xF0) { pszText[ii] = (char)0x85; } } printf("%s\n",pszText); return 0; }
Объяснение кода листинга программы
- Объявлена переменная
pszText
типаchar
с размером вMAX_PATH + 1
. - В цикле
for
происходит проход по всем символам в строкеpszText
. - Если текущий символ имеет код 0xF0 (то есть 240 в десятичной системе), то он заменяется на символ с кодом 0x85 (133 в десятичной системе).
- После прохода по всем символам, выводится измененная строка
pszText
. - Возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д