Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 3

Нет взаимодействия с русскими словами

31.03.2019, 17:48. Показов 1279. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделал небольшую программу, которая из букв введенного слова составляет новые слова. Слова берутся из текстовых файлов, сделал русский и английский язык. Так вот, с английским все работает хорошо, а с русским - не работает, ничего не выводит. Вот сам код:
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
43
44
45
46
47
48
49
50
51
#include<iostream>
#include<fstream>
#include<cstring>
#include <windows.h>
#include<string>
 
void FindWords(std::string);
 
 
int main(){
    
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    std::string language;
    std::cout<<"For russian words type 'russian' \tFor English - type 'english'\n "<<std::endl;
    std::cin>>language;
    FindWords(language);
}
 
void FindWords(std::string language){
 
    char current_word1[255]; // копия слова из базы
    int matching_letters=0;
    char string[255]; //введенное слово
    char current_word[255]; //перебор слов из базы
    std::fstream word;
    if(language=="russian" || language=="Russian"){ word.open("E:\\Project\\database_russian.txt");}
    else if(language=="english" || language=="English"){ word.open("E:\\Project\\database_english.txt");}
    else {std::cout<<"\n vi debil \n"; return; }
    std::cin.ignore(); //если перед cin.getline был любой другой cin, то нужен cin.ignore();i
    std::cin.getline(string,255);  // защита от переполнения массива
    if(word){
        while(!word.eof()){ // если достигнут конец файла - true
            word>>current_word;
            strcpy(current_word1,current_word); //создаем копию слова, потому что будем заменять буквы на знаки вопроса
             matching_letters=0;
            for(int i=0;string[i]!='\0';i++){
                for(int j=0;current_word[j]!='\0';j++){
                    if(string[i]==current_word[j]){
                        current_word[j]='?'; //чтобы символ не нашелся более 1 раза
                        matching_letters++;
                        break;
                    }
                }
            }
            if(strlen(current_word1)==matching_letters) std::cout<<current_word1<<std::endl; //проверяем, если количество совпавших букв равно количеству букв в слове, тогда выводим его
            std::cout<<1;
    }   
    }else std::cout<<"failed while opening file\n";
    system("pause");
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2019, 17:48
Ответы с готовыми решениями:

Проблема с русскими словами
Всем привет! Пытался реализовать небольшую базу данных с помощью массивов. Когда ввожу логины на английском (lesha, admin) то все работает...

Имена переменных русскими словами
Попробовал объявить переменную русским словом, присвоить значение и напечатать. Всё получилось. А почему в учебниках пишут, что можно...

Записать число русскими словами
Добрый день! Вот условие: Дано натуральное число n≤1000. Записать русскими словами (семнадцать, три, тысяча и т. д.). есть код на...

4
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
31.03.2019, 20:04
Цитата Сообщение от d3b1l Посмотреть сообщение
Слова берутся из текстовых файлов, сделал русский и английский язык.
В какой кодировке файлы?
0
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 3
31.03.2019, 20:09  [ТС]
Utf-8
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
31.03.2019, 20:11
Лучший ответ Сообщение было отмечено d3b1l как решение

Решение

Цитата Сообщение от d3b1l Посмотреть сообщение
Utf-8
Для английского без разницы, а русский делай в ANSI.
1
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 3
31.03.2019, 20:14  [ТС]
Спасибо, помогло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2019, 20:14
Помогаю со студенческими работами здесь

Напечатать число русскими словами
дано натуральное число n. Напечатать это число русскими словами (сто пять, двести сорок один...)

Напечатать данное натуральное число русскими словами
Дано натуральное число n (n&lt;=1000). Напечатать это число русскими словами (тринадцать, сто пять, двести сорок один, тысяча и т.д) ...

Как заполнить массив строк с консоли русскими словами?
А после заполнения вывести число повторений каждого слова.

Напечатать число русскими словами
дано натуральное число n(n&lt;=1000). напечатать это число русскими словами.(например: двести сорок один)

Записать число русскими словами
Задано натуральное число n (n&lt;=20). Записать это число русскими словами (семнадцать, три, десять) и т. д.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru