Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kolhir
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 2
#1

Преобразование русских символов, функция gets - C++

10.12.2015, 17:18. Просмотров 371. Ответов 1

При вводе английских букв все работает, но мне нужно обрабатывать строку из русских, но почему-то функции gets и getline считывают вместо русских букв кракозябру.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <clocale>
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
   
    int l[4] = {0, 0, 0, 0};
    char S[500];
    cout << "Введите последовательность символов" << endl;
    gets(S);
    cout << S;
    cout << endl;
    int k = 1;
    int i = 0;
    while ( k == 1) {
        
        if ((S[i] == 'ш') || (S[i] == 'Ш')) l[0] = 1;
        if ((S[i] == 'и') || (S[i] == 'И')) l[1] = 1;   
        if ((S[i] == 'н') || (S[i] == 'Н')) l[2] = 1;   
        if ((S[i] == 'а') || (S[i] == 'А')) l[3] = 1;   
        if (S[i] == '\0') k = 0;
        ++i;
    }
    k = 1;
    for(i = 0; i < 4; ++i){
        cout << l[i] << endl;
        if (l[i] == 0) k = 0; 
    }
    
    if  (k == 1) cout << "В строке есть все буквы, входящие в слово шина" << endl;
        else cout << "В строке нет букв, входящих в слово шина" << endl;
        
    
    
    
    
  
    system("pause");
    return 0;
}
Во вложении скриншот работы программы.
Кто-нибудь знает почему?
Заранее спасибо.
0
Миниатюры
Преобразование русских символов, функция gets  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 17:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Преобразование русских символов, функция gets (C++):

Как настроить ввод русских символов и в дальнейшем вывод этих символов - C++
Подскажите как в этом коде настроить ввод русских символов и в дальнейшем вывод этих символов. Данный код выводит лишь всякую ерунду место...

Ввод русских символов. - C++
Здравствуйте, простите пожалуйста что отвлекаю, я хотел бы спросить как сделать так, что бы русские символы можно было вводить? Я вот...

Сравнение русских символов. - C++
Проблема с русскими символами. Русские символы заносятся в массив занимая две ячейки( 2 байта ). Думаю это связано с UTF-8 кодировкой. ...

Проверка русских символов в строке - C++
Здравствуйте. Эта программка просит ввести строку,и если есть слово, заканчивающиеся на &quot;к&quot; + space, то она должна вывести YES, а если это...

ASCII игра из русских символов - C++
В общем решил написать небольшую консольную игру, все игровые объекты будут отображаться символами из таблицы ASCII, интерфейс будет на...

Корретное отображение русских символов - C++
Здравствуйте, подскажите пожалуйста как моножно решить следующую проблемму: Написал программу, которая запрашивает и вывожит информацию....

1
kolhir
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 2
11.12.2015, 01:58  [ТС] #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Проблему решил, если кому интересно то я добавил две строки:
Вместо вот этой
C++
1
 setlocale(LC_ALL, "Russian");
Вот эти:
C++
1
2
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2015, 01:58
Привет! Вот еще темы с ответами:

Считывание русских символов fstream - C++
Работаю с большим файлом, где помимо английских символов есть и кириллица, всё это время считывал так: char buffer; ... ...

Замена русских символов пробелами - C++
Необходимо написать программу по замене русских символов на пробелы(_) Моя программа запускается, но почему-то вместо пробелов какие-то...

Вывод русских символов в консоль - C++
Чтобы выводить русские буквы в консоли, написал функцию rustext() #include&lt;iostream&gt; using namespace std; #include&lt;windows&gt; ...

Вывод на консоль русских символов - C++
wcout должна вроде это делать , но все равно чето не получается. Как граммотно это делается?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru