【发布时间】:2020-03-23 20:48:10
【问题描述】:
我试图在某个字符出现之间或之后获取所有子字符串。 特别是搜索查询网址(获取选项),例如,如果我有:
std::string url = "https://www.google.com/search?q=i+need+help&rlz=1C1CHBF_enUS851US851&oq=i+need+help&aqs=chrome.0.69i59j0l3j69i60l2.4646j0j7&sourceid=chrome&ie=UTF-8"
我需要在“&”字符之间和之后(最后一次出现)输出字符串 所以输出将是:
rlz=1C1CHBF_enUS851US851
oq=i+need+help
aqs=chrome.0.69i59j0l3j69i60l2.4646j0j7
sourceid=chrome
ie=UTF-8
我了解如何使用一个字符串来执行此操作,但我一直在尝试将其实现为循环。这必须通过几个不同长度和选项数量的 url 来完成。
到目前为止,我只能在第一次和第二次出现字符之间抓取一个子字符串,但我需要在任何给定的 url 中抓取所有子字符串。
int a = url.find("&") + 1;
int b = url.find("&", url.find("&") + 1);
int c = (b - a);
std::string option = url.substr(a, c);
【问题讨论】:
-
也是第一个
&之前的q=i+need+help? -
@mch 是的,但我想我可以很容易地找到第一个“q=”和第一个“&”来做到这一点。我更担心之后的零件