0
我從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);'。 – 2013-03-10 15:41:16
至於你的問題,如果你告訴實際結果是什麼,以及你期望他們是什麼,這將有助於我們幫助我們。請提供具有實際和預期結果的完整示例。 – 2013-03-10 15:43:04
結果是-1和-1。預期結果是開始和結束標記之間的詞。 例如: 如果我有這個字符串: ... 柏林 STARTTAG是 和 ENDTAG是 我希望得到 「柏林」 的結果。 它工作,如果我使用字符串沒有特殊的字符而不是 – Y0UR 2013-03-10 15:44:20