将字符串作为参数传递

时间:2017-09-28 05:25:24

标签: c++ string function c++11 reference

想要传递作为参考。这样我就可以修改函数内部的字符串了。

    void shift(string &s,int i){
    int len=strlen(s);
    for(;len>i;len--){
        s[len]=s[len-1];
    }
}

1 个答案:

答案 0 :(得分:0)

以下是您修改的代码段,以执行您要实现的目标,并提供解释更改的注释:

void shift(std::string &s,int i){ // use std::string (if you aren't already)
    int len=s.length(); // use length() when working with std::string
    s.resize(len+1); // before shifting the characters, you need to ensure there's enough space
    for(;len>i;len--){ // use len (not s[len]) to compare the current position to i
        s[len]=s[len-1];
    }
}

当然,您可以改为使用std :: string的现有功能,Rene已提到:s.insert(i, "_")将执行shift()函数所做的操作并将_插入角色转移后创建的空间。