![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| n00dless |
|
|||
|
Unregistered |
#include <help_me.h>
респект ; люди, я только начинаю кодить на C++, посему прошу не кричать, что я задаю идиотские вопросы вопрос: допустим, пользователь вводит строку "ывфывфываважноесловоыфаф". каким образом мне сделать проверку на наличие в строке подстроки "важноеслово" ? пытался работа с классами cstring и sstring, но там все очень мутно и непонятно. падскажите пжалста, если можно ввиде исходника, желательно, используя стандартные операторы здесь бываю редко, если не трудно, ответте по e-mail плиzzz: [email protected] заранее признателен, n00dless |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
Вопрос-то может и не глупый, но правила форума ты нарушаешь. 1) Заголовок сообщения должен кратко отражать суть проблемы, нельзя давать заголовки типа "Помогите", "Срочно нужна помощь", "Есть вопрос", "Очень надо", "Сложный вопрос по программированию" и тому подобное. -------------------- Да. Именно так. |
|||
|
||||
| Pakshin A. S. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Класс string содержит несколько функций-членов, предназначенных для поиска подстрок, в частности функции find() и rfind().
Пример:
Это сообщение отредактировал(а) Pakshin A. S. - 15.9.2004, 22:46 |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Исходник не дам(сам сделай, иначе не научишься программировать
Итак получай алгоритм: Подсчитай количество букв в слове[ b]важноеслово[/b] Это будет критерием проверки на совпадение.Затем проверяй (в цикле ) каждую букву,из веденной пользователем,с буквой своего слова.Если совпало продолжай цикл,плюсуя заранее подготовленую переменную.И когда значение переменой совпадет с количеством букв слова важноеслово ,выходи из цикла.Такое слово есть.Не забывай при не совпадении сбрасывать переменую на ноль.Иди дальше.Если в конце цикла переменная меньше кол-ва букв,такого слова нет. Ну уж если не разобрался,напишу код.Помогу и c СString.Но пробуй сам О,пока писал уже код кинули.Но это код CString.А ты просил
Это сообщение отредактировал(а) Coocky - 15.9.2004, 22:55 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Заголовок
string.h Прототип char *strstr(const char *s1, const char *s2); Описание Сканирует строку на присутсвие заданной подстроки. strstr сканирует s1 до первого нахождения строки s2. Возвращаемые значения strstr возвращает указатель в строке s1, где начинается s2 . Если s2 не встречается в s1, strstr возвращает NULL. Копирайт C Runtime Library Reference - BCB6 |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Модератор: Название темы должно отражать ее суть!
P.S.
strstr есть и в VC++, и в gcc, и в Watcom -------------------- ![]() |
|||
|
||||
| Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Я подразумевал копирайт на текст, ибо закопипастил его оттуда (справка с BCB6) и немножко перевел |
|||
|
||||
| LuckLess |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
Бегать по текчту и сравнивать посимвольно , это слишком напряжно... проще:
код не проверял , но думаю идея понятна. Это сообщение отредактировал(а) LuckLess - 16.9.2004, 12:39 |
|||
|
||||
| Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
1. char text[]={/*сюда пиши подстроку , которую ищеш*/}
В С нельзя инициализировать члены структур и классов таким образом! 2. char input[]; В С нельзя создавать динамические массивы таким образом. Размер этого массива будет неизвестен! 3. input="text";//в котором ты исщеш строку. В С нельзя таким образом присваивать строки строковым массивам! 4. код не проверял Это код не откомпилируется никогда! 5. но думаю идея понятна. Если честно идея совершенно не понятна, а если я понял правильно, то ИМХО идея не верна! sorry |
|||
|
||||
| LuckLess |
|
||||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
ты наверно не допонял. я обЪяснял зачем нужно это поле структуры, вот и вся.
ты наверно не допонял. я обЪяснял зачем нужен этот массив.
ессесно не скомпилится
Ладдно... счаз напишу работающий пример... |
||||||||||
|
|||||||||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
гм... ничего не понял... LuckLess предлагает запихнуть строку в структуру, и "бегая по тексту" сравнивать кусок текста со структурой, где лежит образец строки ? При сравнении двух структур - что происходит ? В примере - вообще ничего не произойдёт, т.к. не переопределён оператор "==" для класса (структуры). Но, допустим, напишем мы этот самый оператор "==". И как будем сравнивать поле "text" двух структур ? Функцией "strcmp" ? Тогда не понятно, почему не подходит "strstr", который сработает в 10-20 раз быстрей, чем беготня по строке с множественными вызовами "strcmp". З.Ы. интересно, всё-таки, увидеть работающий пример от LuckLess... -------------------- ![]() |
|||
|
||||
| LuckLess |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
Предлагаеться приводить кусок строки из input , к структуре (чтобы вырвать кусок строки нужной длинны) а потом сравнивать текстовые поля структур(структуры приведенной из куска текста , и структуры где валяеться текст который ищеш). Добавлено @ 14:18 mr.DUDA Да , strstr будет быстрее , забыл про нее чтото..... Но это удобнее чем алгоритм предложенный Coocky Это сообщение отредактировал(а) LuckLess - 16.9.2004, 14:15 |
|||
|
||||
| Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Прошу пардона если кого расстроил |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |