我是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