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

Posted

技术标签:

【中文标题】C ++如何在获取其索引位置后获取子字符串【英文标题】:C++ how to get substring after get position of its index 【发布时间】:2012-07-23 16:14:08 【问题描述】:

我正在尝试解析this page!

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;

在我获得模式“针”的位置后如何获得货币汇率,我希望它在之后停止解析

对不起,我这样做是为了我的一个小项目,不是商业的,只是一些小作品

【问题讨论】:

雅虎不为此提供网络服务吗?哪个更简单 【参考方案1】:

雅虎不为此提供网络服务吗?这会更简单。检查这个:

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

【讨论】:

那 1 个用于公司财务,我想要的是货币 eurusd 等。 @Baokychen 如果你在网站上搜索“webservice”,你会发现很多。你只需要找到合适的。每次更改页面源代码时,使用 webservice 将避免您重新更改代码【参考方案2】:

std::string.substr(pos,npos) 将为您提供来自 pos 的 std::string(在您的情况下为 found),长度为 npos。要找出长度,您可能需要查找字符串“

【讨论】:

【参考方案3】:

我认为您应该像@Adel Boutros 所说的那样使用 Yahoo Finance 提供的 API,或者如果您想自己解析这样的事情,您至少应该使用完整的 HTML 解析器类。

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

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

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

【讨论】:

假设html代码没有改变,我可以解析我的内容吗?

以上是关于C ++如何在获取其索引位置后获取子字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C 语言中获取字符在字母表中的位置?

java中如何获取某个字符在另一个字符串中的全部索引值

如何获取一个字符串在某个字符串的位置

如何获取某个字符在字符串中的位置

C#-WinForm-如何获取文本框(TextBox)中鼠标,光标位置

将位置存储为字符串,从字符串中获取位置以显示在地图上。 iOS