我试图从一行中读入属于结构 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/