Я получил длинную строку из запроса HTML. Мне нужно найти следующую подстроку в пределах:C++ std :: string поиск со специальными символами
<b><i>
Однако, когда я пытаюсь выполнить поиск, это дает мне неправильные результаты.
Если я заменил строку чем-то, не содержащим < или> он работает безупречно.
Соответствующий код: (не копируются, может иметь некоторые опечатки, но работает без специальных символов)
std::string readBuffer; //longlongstring
std::string starttag;
std::string endtag;
size_t sstart;
size_t send;
//...................
sstart=readBuffer.find(starttag);
send=redBuffer.find(endtag);
correction=readBuffer.substr(sstart,send-sstart);
//....................
Так что да, если кто-нибудь случается знать способ, чтобы исправить это, я очень бы признательно :) заранее спасибо
Вы можете сделать поиск закрывающего тега более эффективным, установив 'sstart' в качестве начальной позиции для поиска из:' send = readBuffer.find (endtag, sstart); '. –
Что касается вашего вопроса, это поможет нам помочь нам, если вы скажете, каковы фактические результаты и что вы ожидали от них. Просьба представить полный пример с фактическими и ожидаемыми результатами. –
Результаты: -1 и -1. Ожидаемым результатом будет слово между начальным и конечным тегами. Например: Если у меня есть эта строка: ... Берлин STARTTAG быть и ENDTAG быть Я бы ожидать, чтобы получить «Берлин» в результате. Это работает, если я использую строки без специальных символов вместо – Y0UR