C++如何在获取子字符串的索引位置后获取子字符串

C++ how to get substring after get position of its index

本文关键字:字符串 获取 索引 位置 C++      更新时间:2023-10-16

我正在尝试解析此页面!

string str2 ("<span class="time_rtq_ticker"><span id="yfs_l10_usdsgd=x">");
  size_t found;
  // different member versions of find in the same order as above:
  found=sdata.find(str2);
  if (found!=string::npos)
    cout << "first 'needle' found at: " << int(found) << endl;

在我得到"针"的位置后,我如何获得汇率,这是模式,我希望它在后停止解析

很抱歉,我这样做是为了我的一个小项目,不是商业性的,只是一些迷你作品

雅虎没有为此提供Web服务吗?这会更简单。检查此项:

http://developer.yahoo.com/finance/company.html

std::string.substr(pos,npos)将从pos(在您的情况下为found)向您提供长度为nposstd::string。要找出长度,您可能需要查找字符串"<"(下一个html标记的开头)并减去。

我认为你应该使用雅虎金融提供的API,就像@Adel Boutros所说的那样,或者如果你想自己解析这样的东西,你至少应该使用一个完整的HTML解析器类。

有很多变体,但本质上,它们会读取标签并为您提供数据内容-您只需要添加一些处理程序来捕获您感兴趣的标签。每个解析器的工作方式都有点不同,在速度或简单性方面都有不同的优势,但它们非常直接,而且会更。。。稳定的比你正在做的事情更重要。

这里有一个关于选择C++HTML解析器的有趣SO(但它看起来不稳定)。就我个人而言,我只会对python进行外部调用来解析它,或者制作一个java EXE,你可以调用它来将下载的网页解析成更有用的格式(我更喜欢python,但更多的人知道java,它也会工作)。

https://stackoverflow.com/questions/489522/library-recommendation-c-html-parser