子串,中间抓一块,大小随机
Sub strings, grabbing a piece in the middle, with random sizes
我有一个这样输出的文件,
Joel[12813/76561198008530803] was taken by Huey[3924/252820590256923]
我已经设置了一个 getline
来扫描单词并将其存储到一个字符串中,我尝试使用 substr
但我遇到了问题。问题是括号之间的数字大小可能不同,因此当我尝试将 find_first_of("/");
与 substr
相结合时,我无法使用第二个参数,否则它可能会截断数字.我得到了第一个正斜杠后的所有内容。
我最终想要的是只提取字符串的这一部分 76561198008530803
。
我试过的,
while (getline(read, line))
{
if (line.find("taken") != string::npos) {
size_t pos = line.find_first_of("/");
extension = line.substr(pos + 1);
output << extension << endl;
}
感谢您抽出宝贵时间!
您可以重复使用std::string::find_first_of
。
size_t pos = line.find_first_of("/");
size_t pos2 = line.find_first_of("]");
std::string extension = line.substr(pos + 1,pos2-1-pos);
我有一个这样输出的文件,
Joel[12813/76561198008530803] was taken by Huey[3924/252820590256923]
我已经设置了一个 getline
来扫描单词并将其存储到一个字符串中,我尝试使用 substr
但我遇到了问题。问题是括号之间的数字大小可能不同,因此当我尝试将 find_first_of("/");
与 substr
相结合时,我无法使用第二个参数,否则它可能会截断数字.我得到了第一个正斜杠后的所有内容。
我最终想要的是只提取字符串的这一部分 76561198008530803
。
我试过的,
while (getline(read, line))
{
if (line.find("taken") != string::npos) {
size_t pos = line.find_first_of("/");
extension = line.substr(pos + 1);
output << extension << endl;
}
感谢您抽出宝贵时间!
您可以重复使用std::string::find_first_of
。
size_t pos = line.find_first_of("/");
size_t pos2 = line.find_first_of("]");
std::string extension = line.substr(pos + 1,pos2-1-pos);