|
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
|
|
Как сделать проверку на наличие недопустимого слова?29.07.2019, 13:03. Показов 7700. Ответов 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,408
|
|||||||
| 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,408
|
|
| 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,408
|
||||||
| 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,408
|
|
| 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,408
|
|
| 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 Нужно сделать проверку по регистру сведений на наличие Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|