Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/44: Рейтинг темы: голосов - 44, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 28.07.2009
Сообщений: 37
1

Функция strstr

01.09.2009, 19:34. Показов 8073. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Объясните новичку почему функция strstr срабатывает всего один раз?
Моя программа получает из вне данные , которые затем по истечении таймера анализируются.При первой посылке данных и соответственно анализе программа отрабатывает нормально,но если данные меняются(приходит p11) программа отрабатывает как в прошлый раз.
Код:
C++
1
2
3
4
5
6
7
8
if(strstr(buffer,"p10")!=0)
{
memset(buffer,0,sizeof(buffer));
Form2->Visible=False;Form3->Caption="ВНИМАНИЕ!!!";
  Form3->Label1->Caption="ВНИМАНИЕ!!!";
Form3->ShowModal();
Form3->Timer1->Enabled=1;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2009, 19:34
Ответы с готовыми решениями:

что за функция такая strstr? или это не функция?
void search(sp *list){ sp *prt = list; char f,r; cout<<Rus("введите текст")<<endl; cin>>f;...

Функция strstr
необходимо написать функцию strstr самому или точнее вот условие: Реализуйте функцию, которая ищет...

функция strstr
Кто нибудь может объяснить как использовать функцию strstr со строками? В последней строке кода...

Не срабатывает функция strstr()
Функция поиска слова в строке не даёт результат. void SearchWord(MyString *_strings, int...

9
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
01.09.2009, 20:39 2
amazingsoul, а сколько раз должна работать?

Добавлено через 1 минуту
if(strstr(buffer,"p10")!=0)
C++
1
while(strstr(buffer,"p10")!=0)
IF это только один раз а while означает,если вдруг произайдет то что в скобках, то перейти к следующему оператору...если нет то перейти к телу while-а
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
01.09.2009, 20:45 3
amazingsoul, это Builder? Лучше используйте AnsiString вместо char*.

p.s: используй bb-коды для подсветки синтаксиса - проще читать
0
0 / 0 / 1
Регистрация: 28.07.2009
Сообщений: 37
01.09.2009, 21:03  [ТС] 4
Цитата Сообщение от МедведЪ Посмотреть сообщение
amazingsoul, а сколько раз должна работать?

Добавлено через 1 минуту

C++
1
while(strstr(buffer,"p10")!=0)
IF это только один раз а while означает,если вдруг произайдет то что в скобках, то перейти к следующему оператору...если нет то перейти к телу while-а
Должна корректно отрабатывать при каждом срабатывании таймера.А то получается, в первый раз при приходе p11 реакции нет, как и должно быть, а в дальнейшем при приходе p10,реакция так и не наступает.

Добавлено через 5 минут
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
amazingsoul, это Builder? Лучше используйте AnsiString вместо char*.

p.s: используй bb-коды для подсветки синтаксиса - проще читать
strstr по-моему только с *char умеет работать
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
01.09.2009, 21:57 5
Цитата Сообщение от amazingsoul Посмотреть сообщение
strstr по-моему только с *char умеет работать
так в AnsiString есть методы. ты о них слышал?
так вот, там точно есть метод поиска подстроки.
1
0 / 0 / 1
Регистрация: 28.07.2009
Сообщений: 37
02.09.2009, 00:22  [ТС] 6
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
так в AnsiString есть методы. ты о них слышал?
так вот, там точно есть метод поиска подстроки.
Это конечно здорово, но почему strstr не работает больше 1 раза?тут скорее вопрос принципа

Добавлено через 12 минут
Цитата Сообщение от amazingsoul Посмотреть сообщение
Это конечно здорово, но почему strstr не работает больше 1 раза?тут скорее вопрос принципа
Спасибо всем, нашел проблему )
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.09.2009, 00:26 7
Добавлено через 42 секунды
Цитата Сообщение от amazingsoul Посмотреть сообщение
Спасибо всем, нашел проблему )
расскажи потомкам.. мож кто с таким же столкнется - так поможешь кому тогда.
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
02.09.2009, 01:00 8
расскажи потомкам.. мож кто с таким же столкнется - так поможешь кому тогда.
проблема может быть только в лажовом коде.
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.09.2009, 01:04 9
Цитата Сообщение от Rififi Посмотреть сообщение
проблема может быть только в лажовом коде
я это понимаю. и так же осознаю, что есть, и не мало, людей кто может допустить такую же ошибку в коде.
0
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,849
20.11.2020, 22:10 10
Подскажите, а случаем нет функции strstr только которая будет искать не в Си-строке, а просто в заданном диапазоне ? Ну по типу как функции strcmp и strNcmp ?
0
20.11.2020, 22:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2020, 22:10
Помогаю со студенческими работами здесь

Что делает функция strstr
Объясните, пожалуйста, что в данном примере делает функция str? ... char temp; ...

Как использовать функции string::find или функция strstr(str1 ,str2)
как использовать функции string::find или функция strstr(str1 ,str2) Добавлено через 3 минуты...

Не работает strstr
Суть проблемы такова: strstr выдаёт нулевое значение, хотя быть такого не может. Искомые данные...

С / С++ Есть ли аналоги strstr() ?
Есть ли функция которая не возвращала бы позицию вхождения строки str1 в str2, а просто выдавала бы...

Написать аналог strstr
Добрый день! Нужно написать аналог функции strstr Я написал, но есть одна проблемка, которая...

Вывод слова с strstr, а не предложения
Есть программа, которая находит подстроку в тексте и удаляет ее. Также необходимо вывести слово, из...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru