|
4 / 4 / 0
Регистрация: 28.04.2019
Сообщений: 303
|
|
Как в строке найти слово, совпадающее с ключом контейнера map09.05.2020, 02:46. Показов 984. Ответов 12
Метки нет (Все метки)
Как сравнить слово из строки на соответствие с одним из ключей map'а ?
Нужно не конкретное слово проверять, а что бы проверялась вся строка
0
|
|
| 09.05.2020, 02:46 | |
|
Ответы с готовыми решениями:
12
Вывести совпадающее слово в строке Имеется ли в строке слово совпадающее с первым словом? Из каждого элемента контейнера map вычесть среднее арифметическое контейнера |
|
Вездепух
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,239
|
||
| 09.05.2020, 04:27 | ||
|
В любом случае, это значит, что вам нужно ручками пройтись по словам в строке и проверить каждое слово по отдельности. Никакого волшебного "проверялась вся строка" тут быть не может, кроме разве что готового решения, которое пройдется по словам за вас.
0
|
||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||||||
| 09.05.2020, 05:20 | ||||||
|
TheCalligrapher, может ТС имел ввиду нечто такое?
0
|
||||||
|
Вездепух
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,239
|
|||||||
| 09.05.2020, 06:27 | |||||||
|
Во-первых, std::map<const char *, const char *> - это почти всегда бессмыслица, ибо оно будет сравнивать указатели.Во-вторых, выражение
"source_word", либо тупо упадет. Какой в тогда смысл в testMap.find???
0
|
|||||||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|||||||||||||
| 09.05.2020, 07:06 | |||||||||||||
|
TheCalligrapher,
И упреждая возможный ход диалога - не надо привязываться к мнимому примеру. Думаю ТС не совсем потерян, и сможет итерационно пройтись по мапе. Смысл моего вопроса к Вам был в
0
|
|||||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 09.05.2020, 07:54 | |
|
Qwerty_Wasd, компаратор map в вашем коде будет сравнивать адреса, а не содержимое строк. Поэтому ваш код не может гарантировать ожидаемое вами (или ТС) поведение. Совершенно очевидно, что у литерала "source_word" в 7 строке может быть совершенно другой адрес нежели у литерала в "source_word" в 9-й. Даже если в вашем конкретном случае компилятор оптимизировал расположение литералов в памяти и "схлопнул" идентичные строки в одну и вы получили ожидаемое поведение, то это поведение не гарантируется. Не говоря уж о том, что если такие строки будут задаваться не литералами, то работать не будет вообще никогда.
Добавлено через 36 минут Qwerty_Wasd, т.е. тут надо либо использовать std::string или что-то подобное, либо написать компаратор для этого случая, в котором делать сравнение содержимого строк по указателям.
1
|
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||||||
| 09.05.2020, 08:04 | ||||||
|
DrOffset,
Что-то вроде?
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||
| 09.05.2020, 08:16 | ||
|
Я тоже думаю, что лучше ТС пояснить подробнее чего именно он хотел добиться.
0
|
||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|||||||
| 09.05.2020, 08:20 | |||||||
|
DrOffset,
![]() Еще вопрос на злобу темы - Здесь
0
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 09.05.2020, 08:25 | |
|
Qwerty_Wasd, strstr работает через эти указатели с содержимым строки. В этом и разница, надо полагать
![]() std::map тоже может так делать, если вы дадите ему адекватный компаратор.
0
|
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||
| 09.05.2020, 08:30 | ||
|
DrOffset, предполагаю что начинаю вызывать раздражение, и тем не менее, пока есть возможность, позвольте потрясти Вас на знания. Очень уж я до них жаден
![]() К слову Вменяемый компаратор думаю присутствует в реализации некоторых методов - find, count и т.д.
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|||||||
| 09.05.2020, 08:41 | |||||||
![]() С вашего позволения, ваш первый пример мог бы выглядеть так,
1
|
|||||||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|
| 09.05.2020, 08:50 | |
|
Аххх-ха, запомним
![]() Благодарю за урок Хорошего утра\дня\вечера\ночи
0
|
|
| 09.05.2020, 08:50 | |
|
Помогаю со студенческими работами здесь
13
Первое слово, совпадающее со словом а, заменить на слово b
Map : как по номеру элемента получить сам элемент контейнера?
Использование контейнера map Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|