我對C++來說很新,我想我在這段代碼的某個地方犯了一個小錯誤。到目前爲止我沒有發現它。我希望你能幫助我,告訴我他/她/爲什麼是錯的? 非常感謝提前。C++在字符上正確地分割文本
的代碼:
std::vector<std::string> spliter(const std::string& s, char delimiter)
{
std::vector<std::string> result;
size_t start = 0;
for(std::size_t i = 0; i != std::string::npos; i = s.find(delimiter,start))
{
result.push_back(s.substr(start,i-start));
start = i+1;
}
iprintf("\x1b[2J");
printf("\x1b[4;0HDone Splitting Text.");
swiWaitForVBlank();
return result;
}
參數給出: s = "$ 00-000 SS ''Prologue'' CF N00-001 V 1 MP 20"
定界符= ' '
(空格)
預期結果:
result[0] = $
result[1] = 00-000
result[2] = SS
etc.
當前錯誤的結果:
result[0] =
result[1] =
result[2] = 00-000
etc.
任何幫助,非常感謝!
你能看到第一次在你的循環中,你推回's.substr(0,0)'? –
等一下,'i'在第一次循環發生之前沒有設置?儘管如此,它並沒有解釋缺失的'$'字符。 – Smileynator
你見過[this](http://stackoverflow.com/a/236803/701092)問題的答案嗎?你的代碼看起來有點類似。 – 0x499602D2