Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2023, 20:25   #1
natatttt
 
Регистрация: 08.04.2023
Сообщений: 9
По умолчанию Регулярные выражения

Написать регулярное выражение для определения того, является ли введенный текст на русском языке.
Код:
#include <regex>
#include <iostream>
using namespace std;
 
bool is_russ_text(string text) 
{
    regex russ_regex("[А-Яа-яёЁ]+");
    return regex_match(text, russ_regex);
}
 
int main() 
{
    setlocale(LC_ALL, "rus");
    string text;
    cout << "Введите текст: ";
    getline(cin, text);
 
    if (is_russ_text(text)) cout << "Текст полностью на русском языке" <<endl;
    else cout << "Текст не полностью на русском языке" << std::endl;
    return 0;
}
Как сделать так, чтобы при вводе половины текста на русском, половины на английском или др.языке, распознавал, что он не полностью на русском
natatttt вне форума Ответить с цитированием
Старый 25.12.2023, 23:38   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Вероятно надо изменить способ чтения строки.
Например, задать чтение только до пробела (читать по словам) и проверять введённое слово.

Тут, например, https://codelessons.dev/ru/getline-in-cplusplus/ показано, как использовать разделитель (delim), который приостанавливает чтение.
Код:
istream& getline (istream& is, string& str, char delim);
PS: Среды нет и Си знаю поверхностно.
Как-то так, ...
ViktorR на форуме Ответить с цитированием
Старый 26.12.2023, 13:32   #3
Steelcraft
Форумчанин
 
Регистрация: 13.03.2023
Сообщений: 111
По умолчанию

Добавьте аналогичную функцию is_lat_text, которая проверяет наличие латиницы в тексте. Их комбинация с is_russ_text позволит различать тексты полностью русские, полностью на латинице или смешанные. Открытым остается вопрос с другими языками (китайским, ивритом, тайским etc). При необходимости можно искать и их.
Steelcraft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регулярные выражения der90 JavaScript, Ajax 8 28.01.2015 14:37
Регулярные выражения Xcopy Общие вопросы по программированию, компьютерный форум 1 13.10.2013 01:27
Регулярные выражения Anton PHP 1 06.12.2012 11:18
Регулярные выражения. C# Gift020 Помощь студентам 2 20.11.2012 11:10
Регулярные выражения в PHP ZET78 PHP 1 31.10.2010 20:51