我是C++的新手,我试图逐个读取字符串中的每个字符。这是我在做什么:在一个字符串上循环丢失最后一个字符
string sum = "1 + 3 x 2\n";
char delimiter = ' ';
string token = "";
vector<string> tokens;
for(char c: sum)
{
if(c == delimiter)
{
tokens.push_back(token);
token = "";
}
else
{
token += c;
}
}
因此,我基本上是标记我的字符串。在我看来,我应该最终得到:
tokens[0] = "1";
tokens[1] = "+";
tokens[2] = "3";
tokens[3] = "x";
tokens[4] = "2";
但是,当我运行这个我没有得到最后的“2”。我想这是因为断行的(这是必要的,不值得解释”。
为什么会出现这种情况?
是的,这是因为你的后面没有分隔符(空格)。你可以做的是检查'(c == delimiter)|| (c =='\ n')' – kyflare 2014-10-26 21:41:26
你明白了。如果你把这个作为答案,我会为你+1。非常感谢。 – user3761858 2014-10-26 21:45:38