首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++字符串错误

C++字符串错误
EN

Stack Overflow用户
提问于 2014-02-19 11:23:57
回答 3查看 91关注 0票数 3

我得到一个带有错误的代码:从'const char*‘到'char’的转换无效

代码语言:javascript
复制
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;
}
EN

回答 3

Stack Overflow用户

发布于 2014-02-19 11:32:07

无法修改常量字符串。如果您想修改字符串,请删除其中的const。

还可以将string赋值给string string[i+1] = ""的字符索引

而应为string[i+1] = ' 'string[i+1] = '\0'

票数 3
EN

Stack Overflow用户

发布于 2014-02-19 11:26:03

代码语言:javascript
复制
const std::string& string

字符串是常量,您不能像修改string[i+1] = "";那样修改它

票数 1
EN

Stack Overflow用户

发布于 2014-02-19 11:45:18

关于代码的这一部分:

代码语言:javascript
复制
str[i+1] = "";

您需要记住,str[i+1]只需要一个char字符,而您却给它分配了一个类型为char*的空字符串。

使用str[i+1] = '\0';将会给你带来你想要的结果。但是为了让它成功,你需要在你的函数头中把const std::string& str改成std::string& str

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21870380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档