我得到一个带有错误的代码:从'const char*‘到'char’的转换无效
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;
}发布于 2014-02-19 11:32:07
无法修改常量字符串。如果您想修改字符串,请删除其中的const。
还可以将string赋值给string string[i+1] = ""的字符索引
而应为string[i+1] = ' '或string[i+1] = '\0'
发布于 2014-02-19 11:26:03
const std::string& string字符串是常量,您不能像修改string[i+1] = "";那样修改它
发布于 2014-02-19 11:45:18
关于代码的这一部分:
str[i+1] = "";您需要记住,str[i+1]只需要一个char字符,而您却给它分配了一个类型为char*的空字符串。
使用str[i+1] = '\0';将会给你带来你想要的结果。但是为了让它成功,你需要在你的函数头中把const std::string& str改成std::string& str。
https://stackoverflow.com/questions/21870380
复制相似问题