C ++ std :: string搜索特殊字符

时间:2013-03-10 15:31:46

标签: c++ string search

我从HTML请求中获得了一个长字符串。我需要在其中找到以下子字符串:

<b><i>

然而,当我试图搜索它时,我得到了错误的结果。

如果我用一些东西替换字符串,不包含&lt;或者&gt;它完美无缺。

相关代码: (没有复制,可能有一些拼写错误,但没有特殊字符的工作)

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);

//....................

所以是的,如果有人碰巧知道解决这个问题的方法,我会非常感激:) 提前致谢

1 个答案:

答案 0 :(得分:3)

这可以按预期工作:

#include <cassert>
#include <string> 

int main(int,char**)
{
  std::string data = "...<b><i>Berlin</b></i>";
  size_t sstart = data.find("<b><i>")+6;
  size_t send = data.find("</b></i>");
  std::string correction = data.substr(sstart,send-sstart);
  assert(correction=="Berlin");
  return 0;
}

如果您创建一个这样的小型完整示例,但是如果您遇到故障,则可以更轻松地确定问题所在。