想要传递作为参考。这样我就可以修改函数内部的字符串了。
void shift(string &s,int i){
int len=strlen(s);
for(;len>i;len--){
s[len]=s[len-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()
函数所做的操作并将_
插入角色转移后创建的空间。