|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
Как сделать проверку на наличие недопустимого слова?29.07.2019, 13:03. Показов 7744. Ответов 14
Метки нет (Все метки)
Как сделать следующее:
Строка: hello world test На выходе: Ошибка, потому что слово test не предусмотрено. Мне нужно сделать ограничение, т.е. есть допустимые слова (например hello и world) и, если в строке найдено слово, которое не входит в список этих слов, написать Ошибка
0
|
|
| 29.07.2019, 13:03 | |
|
Ответы с готовыми решениями:
14
Как сделать проверку наличие листа? Как сделать проверку в таблице на наличие данных?
|
|
260 / 165 / 54
Регистрация: 03.05.2019
Сообщений: 339
|
||||||
| 29.07.2019, 13:15 | ||||||
|
С использованием потока:
1
|
||||||
|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
| 29.07.2019, 13:29 [ТС] | |
|
Спасибо но это не то, у меня есть список допустимых слов и вот если в этой строке есть слово которого нет в этом списке
написать 'Ошибка'. Кстати на счёт регистров спасибо, я об этом не подумал.
0
|
|
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|||||||
| 29.07.2019, 13:33 | |||||||
Сообщение было отмечено daneil9 как решение
Решение
daneil9, привет!
Кликните здесь для просмотра всего текста
2
|
|||||||
|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
| 29.07.2019, 13:59 [ТС] | |
|
Привет, а для какого компилятора этот код( просто у меня gcc ругается на этот код )
0
|
|
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|
| 29.07.2019, 14:12 | |
|
daneil9, я писал в Microsoft Visual Studio Community 2019.
На что именно ругается?
0
|
|
|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
| 29.07.2019, 14:31 [ТС] | |
|
На
std::wstring seps(L" .,?!/\\"|'~`@#¹$;:%^*(){}[]<>-—+"); [Error] converting to execution character set: Illegal byte sequence std::set<std::wstring> allowed_words{ L"hello", L"world" }; [Error] in C++98 'allowed_words' must be initialized by constructor, not by '{...}' split_mod(std::begin(line), std::end(line), std::begin(seps), std::end(seps), std::back_inserter(words_in_line)); [Error] 'begin' is not a member of 'std' ...
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|
| 29.07.2019, 15:09 | |
|
daneil9, если используется CodeBlock, то он компилирует по умолчанию по стандарту с++98 и для файлов использует кодировку win-1251, нужно в build options поставить галку на стандарте с++14 и кодировку файлов поменять
1
|
|
|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
| 29.07.2019, 15:30 [ТС] | |
|
Спасибо всё получилось))
Добавлено через 10 минут Кстати вопрос не по теме может ли программа крашеться из за чрезмерного использования include файлов cpp И вообще как мне новичку оптимизировать код (в частности памяти)
0
|
|
|
260 / 165 / 54
Регистрация: 03.05.2019
Сообщений: 339
|
||||||||
| 29.07.2019, 15:34 | ||||||||
Сообщение было отмечено daneil9 как решение
Решение
3
|
||||||||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
||||||
| 30.07.2019, 09:21 | ||||||
|
daneil9, ТабуретY верно заметил про кодировку. Тут вся работа с кодировками + широкие строки задействованы, чтобы иметь возможность обрабатывать кириллицу (русские символы в строках).
Я перевёл всё в более новую кодировку 1251. Список разрешённых слов лучше хранить и брать из файла (например, allowed_words.txt). Он обязательно должен быть в 1251 кодировке (смотри стрелки на скрине). Из файла удобней брать чем вшивать в код или каждый раз запрашивать у пользователя. daneil9, тебя попрошу объяснить для чего в моём коде нужна каждая из строк с 28 по 32 включительно - включительно соответственно. Да, забыл сказать, для работы этого кода включи не C++14, а C++17 в настройках. Кликните здесь для просмотра всего текста
1
|
||||||
|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
| 30.07.2019, 13:26 [ТС] | |
|
@amator_C, Спасибо ещё раз и у меня к вам вопрос. Можно ли сделать так что-бы слова в кавычках не проверялись
при этом была возможность на экранирование кавычек - ("...бэкслэш"...")
0
|
|
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|
| 30.07.2019, 13:32 | |
|
daneil9, можно хоть что сделать. Было бы:
а) желание; б) время; в) знания и опыт.
1
|
|
|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
| 30.07.2019, 13:36 [ТС] | |
|
SomniPhobia, желание и время есть ,а вот знаний и опыта маловата для этой задачи (я про себя)
0
|
|
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|
| 30.07.2019, 14:44 | |
|
daneil9, у классов string, wstring есть нестатические методы front(), back(), которые возвращают первый и последний символ для строки от экземпляра которой вызываются. После расщепления исходной строки на слова, для каждого из слов вызови front(), back() и посмотри, если это кавычки, то обыграй эту ситуацию как исключение.
Для расщепителя, в моём коде, нужно убрать символ " из контейнера seps. Пробуй сам коды писать. По - началу тяжело. Потом, с опытом, становится легко и интересно. Добавлено через 4 минуты Сделай проверку чтобы символов " в исходной строке было чётное количество. Рекомендую через count_if(итератор на начало строки, итератор на конец строки, символ подсчёта). count_if() возвращает количество вхождений элемента подсчёта в контейнер. Добавлено через 13 минут Нужно отлавливать ситуации вроде следующих при"вет как дел"а По сути кавычки две - чётное, но они расставлены не корректно. Как это отловить? Я предлагаю для каждого слова значение, возвращённое функцией count_if(начало слова, конец слова, кавычка) если равно двум, тогда смотрим края через front(), back(). Если на краях стоят по кавычке - всё норм для этого слова. если равно нулю - сразу всё норм. если это не ноль и не два, то ошибка.
1
|
|
| 30.07.2019, 14:44 | |
|
Помогаю со студенческими работами здесь
15
Как сделать проверку базы адресов на наличие мертвых ссылок?
Как сделать проверку на вхождение слова в RichTextBox Нужно сделать проверку по регистру сведений на наличие Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|