c++ - 如何将一个字符串(没有空格)拆分成单独的字符串?

标签 c++ string

我试图从一行中读入属于结构 vector 的多个字符串,但该字符串没有空格。 这基本上是我的问题:

文件数据:

G01G02G03G04G05

当我阅读它时:

for (int i=0;i<5;i++)
    File>>vector.at(i).string

我得到的是 vector 中的第一个字符串

G01G02G03G04G05

我更愿意拥有它的地方:

vector(1)=G01;
vector(2)=G02... and so on

抱歉忘记了一些信息,我在 C++ vs2010 中,它总是三个字符长,以 G、R、C、D 开头

最佳答案

这就是我将子字符串拆分为 vector 的方式:

std::vector<std::string> parseData(const std::string& s)
{
    if (s.size() % 3 != 0) {
        throw std::runtime_error("incorrect data length");
    }

    std::vector<std::string> result;`enter code here`
    for (size_t i = 0; i <= s.size() - 3; i += 3) {
        result.emplace_back(s, i, 3);
    }

    return result;
}

参见 coliru一个完整的可编译演示。

你可以 generalise这是为了支持任何长度的子字符串。

关于c++ - 如何将一个字符串(没有空格)拆分成单独的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19192630/

相关文章:

c++ - 我们可以在 C 文件中定义 C++ 方法吗?

string - 在 Haskell 中生成下一个字典字符串

ios - if 语句不返回任何内容

vb.net - 数组或列表中的项目是否保持其顺序?

c++ - 传递 "shared"指针的 OpenMP 任务

c++ - 连续分布的指数衰减随机分布和离散化

c# - 位图字体渲染和字距微调

c++ - 如何在 if-constexpr 中使用概念?

android - 字符串数组内的字符串数组

c# - 如何获取从头到某个字符后的子串?