Работа с русским алфавитом - 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;
}

Объяснение кода листинга программы

  1. Объявлена переменная pszText типа char с размером в MAX_PATH + 1.
  2. В цикле for происходит проход по всем символам в строке pszText.
  3. Если текущий символ имеет код 0xF0 (то есть 240 в десятичной системе), то он заменяется на символ с кодом 0x85 (133 в десятичной системе).
  4. После прохода по всем символам, выводится измененная строка pszText.
  5. Возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы