我想分割這條線:分割線到令牌與find()
cmd1; cmd2; cmd3
爲3個字符串,我將股票進入名單。像
cmd1
cmd2
cmd3
所以我做了這個代碼:
main.cpp
#include <string>
#include <iostream>
#include <list>
int main()
{
std::string line("cmd1; cmd2; cmd3");
std::list<std::string> l;
size_t pos = 0;
size_t ex_pos = 0;
while ((pos = line.find(';', ex_pos)) != std::string::npos)
{
l.push_back(line.substr(ex_pos, pos));
ex_pos = pos + 2;
}
l.push_back(line.substr(ex_pos, pos));
for (std::list<std::string>::iterator it = l.begin(); it != l.end(); ++it)
{
std::cout << *it << std::endl;
}
return (0);
}
但我不知道爲什麼它返回我:
cmd1
cmd2; cmd3
cmd3
哦,是的,我非常愚蠢,非常感謝! 我會在6分鐘內'接受'你的答案:) – nookonee