Это может быть основной материал, но я не смог найти компактное решение. Я ищу строку внутри большей строки. С его аппаратной иногда я теряю входные данные, и поэтому я хотел бы проверить, если один из нескольких слов существуют в большом тексте, так:strstr для поиска ИЛИ?
strstr(wifiContent,"SEND OK HTTP: Connection:)
будет искать внутри wifiContent
если эти слова появляются в это сочетание, но я хотел бы, чтобы он вернулся> 0, даже если только один из них появляются в строке,
Так что для этого входа:
SEND OK BLA BLA BLA.. BLA BLA BLA.. HTTP: ...BLA BLA BLA... Connection...bla
Хотелось бы узнать правду (или индекс> 0) для результатов поиска.
Как я могу достичь этого с помощью strstr
?
EDIT:
Я безуспешно пытался это один:
char * pch;
char *scopy;
strcpy(scopy,wifiContent);
pch = strtok (scopy," ,.-");
while (pch != NULL)
{
if(strstr(wifiContent,pch))
return 1;
pch = strtok (NULL, " ,.-");
}
if(strstr(wifiContent,target))
return 1;
Да, в нескольких вызовах 'strstr' вы можете сделать это, потому что строки в другую позицию в исходной строке. – ameyCU
вы также можете использовать 'fnmatch' и создать шаблон по своему усмотрению. например, «ОТПРАВИТЬ ОК» HTTP: * СОЕДИНЕНИЕ: * « –
Я не понимаю .. у меня нет нескольких вызовов, я получаю текстовую строку для поиска, и этот текст построен из нескольких слов, как я показываю -« ОТПРАВИТЬ ОК ... ". поэтому я должен взять эту строку поиска так, как есть, и проверить, появляется ли одно из ее слов в более крупном тексте. – Curnelious