c++ - 子串,中间抓一 block ,大小随机

标签 c++ string substring substr

我有一个这样输出的文件,

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);

关于c++ - 子串,中间抓一 block ,大小随机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32666400/

相关文章:

C++ 文本文件 : Writing to the end of a specific line

c++ - 使用 reset 初始化 unique_ptr 是个坏习惯吗?

python - 字符串的绘图函数在 0 时无法正确计算

python - 用 pandas 替换字符串中除最后出现的字符之外的所有字符

c - C 中带有 malloc 的子字符串函数返回不正确的值

c++ - 用于控制算法的仿函数的编译时容器?

c++ - 为什么这个名字有歧义?

java - 从文本字段获取字符串

MySQL - 解析数据并将其从表1移动到表2

string - 如何获取给定字符串的子字符串,直到第一次出现指定字符?