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 ++如何在获取其索引位置后获取子字符串的主要内容,如果未能解决你的问题,请参考以下文章