我得到一個錯誤代碼:從 '爲const char *' 到 '炭'C++字符串錯誤
std::string zipZap(const std::string& str){
for (unsigned i = 0; i < str.length(); i++){
if (str[i] == 'z'){
if (str[i+2] == 'p'){
str[i+1] = "";
}
}
}
return str;
}
函數名稱不能有空格。另外 - 在最內層的if中將''''改爲''''。 –
'std :: string zip zap' o.o that compiles !?另外,調用與某個類型名稱相同的變量並不是一個好主意 – Borgleader
您正在訪問字符超出字符串範圍的字符。你迭代'i'到最後一個字符,如果你使用'str [i]'來訪問這個字符,這很好。但是,你可以使用'str [i + 2]'和'str [i + 1]'來訪問下面的兩個字符,這是無效的(未定義行爲)。 – leemes