Проверка правильности буквосочетаний - программа не распознает русские символы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В русском языке, как правило, после букв Ж, Ч, Ш, Щ пишется И, А, У, а не Ы, Я, Ю. Проверить заданный текст на исполнение этого правила и исправить ошибки. Текст должен считываться с помощью gets(); и ,желательно, выводится с помощью puts(text); Собственно проблема в том, что программа не заходит даже в первое условие. Пробовал вместо русских букв писать английские и всё работало. <locale.h> с setlocale тоже писал, но в таком случае выводились "иероглифы".
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main() {
    char text[140]={0};
    gets(text);
    for(int i=0;i<sizeof(text)-1;i++)
    {
        if((text[i]=='ж') || (text[i]=='Ж') || (text[i]=='ч') || (text[i]=='Ч') || (text[i]=='ш') || (text[i]=='Ш') || (text[i]=='щ') || (text[i]=='Щ')) 
        {
             if(text[i+1]=='ы') 
                text[i+1]='и';
             if(text[i+1]=='я')
                text[i+1]='а';
             if(text[i+1]=='о') 
                text[i+1]='у';
        }
    }
    puts(text);
getch();
}

Решение задачи: «Проверка правильности буквосочетаний - программа не распознает русские символы»

textual
Листинг программы
#include <locale.h>
 
int main(int argc, char** argv[])
{
setlocale(LC_ALL, "RUS");
 
}

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

  1. #include Включает заголовочный файл , который содержит определения для работы с локалью.
  2. int main(int argc, char argv[])** Функция main() является точкой входа в программу. Она принимает два аргумента: argc (количество аргументов, переданных программе) и argv (указатель на массив строк, содержащих аргументы).
  3. setlocale(LC_ALL, RUS); Устанавливает локаль на русскую локализацию с помощью функции setlocale(). Параметр LC_ALL указывает, что мы хотим изменить все аспекты локали (например, формат чисел, даты, времени и т.д.). RUS - это код локали для русского языка. В данном коде ничего больше не происходит.

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


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

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

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