Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Galphimbl
22 / 22 / 3
Регистрация: 13.01.2013
Сообщений: 125
#1

Проверка наличия слова в тексте - C++

05.04.2014, 19:56. Просмотров 504. Ответов 7
Метки нет (Все метки)

на javascript есть вот такой простой способ проверки
Javascript
1
2
/Hello/.test('Hello World'); // true
/Hi/.test('Hello World'); //false
есть ли что то подобное в C++ ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 19:56     Проверка наличия слова в тексте
Посмотрите здесь:
C++ Проверка наличия файла
Проверка наличия символов в строке C++
Проверка наличия файлов в директории C++
Проверка наличия соединения с интернет, VC++ C++
C++ В тексте слова, стоящие на четных местах, переписать задом наперед. В тексте несколько строк.
C++ Определить самое длинное слово в тексте. Считать, что слова в тексте отделены друг от друга одним пробелом
Проверка наличия двух пар среди выданных игроку карт C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
06.04.2014, 00:37     Проверка наличия слова в тексте #2
Функции типа strcmp, хотя она проверят не на наличие, а на сходимость с данным, а на наличие будет strncmp с собственным алгоритмом перебора i-ого.
BlackSpace
136 / 129 / 51
Регистрация: 15.03.2014
Сообщений: 274
06.04.2014, 00:55     Проверка наличия слова в тексте #3
Есть как минимум 6 вариантов поиска для типа string.
Наиболее простой s.find( args ) - ищет первое положение аргумента args в строке s.
http://www.cplusplus.com/reference/string/string/find/

Более подробно о поиске для типа string рекомендую прочесть в книге автора Стенли Липпман
"Язык программирования C++. Вводный курс." 4-е издание, 2007, глава 9.6.4 - Операции поиска строк.

Если для строк в стиле си, то можно использовать strstr()

Цитата Сообщение от Izual Посмотреть сообщение
а на наличие будет strncmp с собственным алгоритмом перебора i-ого.

Явно не лучший вариант.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
06.04.2014, 01:01     Проверка наличия слова в тексте #4
Цитата Сообщение от BlackSpace Посмотреть сообщение
Явно не лучший вариант.
Чем не лучший? Мозг видимо развивать уже не "МОДНО"?!
BlackSpace
136 / 129 / 51
Регистрация: 15.03.2014
Сообщений: 274
06.04.2014, 01:24     Проверка наличия слова в тексте #5
Izual, интеллект развивать необходимо, спору нет.
Также как и программисту необходимо расширять свои знания о готовом функционале изучаемого языка и его библиотек.
Советовать человеку писать некую самоделку для поиска подстроки в строке при наличии готовых средств - это не лучший вариант.

Применять Ваш вариант, на мой взгляд, можно только в нескольких случаях
- очень интересно написать самому
- запрещено ( кем-то ) использовать готовый функционал для поиска строк
- нечего делать

Моя позиция такая.

Не по теме:

Цитата Сообщение от Izual Посмотреть сообщение
Чем не лучший? Мозг видимо развивать уже не "МОДНО"?!
А вот скажите, зачем Вы советовали использование strncmp()? Это ведь готовая функция, "мозг не развивает". Вы так не думаете? Посоветуйте автору темы сравнивать посимвольно, что-то вроде такого
C++
1
2
3
... // тут верхняя часть собственного алгоритма перебора
if ( str[ i ]  == substr[ j ] )
... // а тут нижняя

Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
06.04.2014, 01:48     Проверка наличия слова в тексте #6
Цитата Сообщение от BlackSpace Посмотреть сообщение
Это ведь готовая функция
Можно, но это уже изврат. Суть того что человек должен уметь делать что то сам, без шаблонов. Использовать правильно функцию strncmp тоже исскуство. Кстати подумал тут, а функция эта если первый символ не совпадает сразу return 0 делает? - если так, то очень хорошо, если нет - то можно по первому символу сравнивать, ежели не совпадает, то сразу переходить дальше.
Шаблоны как догмы - затягивают, а потом просто становишся тупым и фанатичным. Примеров даже тут на форуме масса, большинство как то мыслят "странно", не логично - потому что практики алгоритмической нет(потому что шаблоны юзают). А взять php программеров - так там вообще тьма, их и программистами то не назовёш, потому что большинство только и умеет что кнопочками выбирать нужный скрипт)))
Galphimbl
22 / 22 / 3
Регистрация: 13.01.2013
Сообщений: 125
07.04.2014, 16:30  [ТС]     Проверка наличия слова в тексте #7
BlackSpace, спасибо, ваш совет очень помог
Izual, если вдруг мне захочется острых ощущений, я буду знать к кому обратиться
а вообще спасибо что не обошли стороной и помогли
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2014, 16:49     Проверка наличия слова в тексте
Еще ссылки по теме:
C++ В тексте слова разделены запятыми,напечатать все слова в алфавитном порядке.
C++ Найти слова в заданном тексте, состоящие из цифр и сумму чисел, которые образуют эти слова
Слова на букву "А" в тексте переписать в обратном порядке, определить количество предложений в тексте C++
C++ Для заданного достаточно длинного слова найти в имеющемся тексте все слова, в которых использованы только буквы, имеющиеся в заданном слове
C++ Написать программу, которая выделяет любим способом в тексте слова палиндромы (слова, которые читаются одинаково справа налево и слева направо)

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

Или воспользуйтесь поиском по форуму:
Izual
07.04.2014, 16:49     Проверка наличия слова в тексте
  #8

Не по теме:

Цитата Сообщение от Galphimbl Посмотреть сообщение
вдруг мне захочется острых ощущений

Yandex
Объявления
07.04.2014, 16:49     Проверка наличия слова в тексте
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru