所以我有一個簡單的JSON字符串,我用for循環迭代(不要問爲什麼我不使用json解析器)。 在這個循環中我想踢出來{
,}
和「」 (錯位
}
只是有用於調試的原因) 下面是代碼:For循環字符串忽略字符
std::string str("{'pi': 3.141, 'happy': }true }");
for (int i = 0; i < str.length(); i++)
{
char temp = str[i];
if (temp == '{' || temp == '}' || temp == ' ')
str.erase(i, 1);
}
不是很複雜,它基本上只是罰款但由於某種原因,}
被跳過。它只是遍歷字符串,就像它不會在那裏一樣。任何人都可以重現這種行爲?我完全沒有想法這裏可能是錯的。
編輯: 好吧,我可以看到,這可能是其他職位的副本,但要公平很難在一個關於向量後絆倒具有帶有字符串
如果字符串中的字符數保持不變,則只能使用for循環。但是在迭代字符串的同時刪除字符。 –
當某些字符從字符串中移除時,字符串的大小發生變化,並且索引定位的不僅僅是當前(已刪除)元素的下一個元素,而是緊挨着那個 – zapredelom