我有一个我自己构建的自定义String类。我正在尝试构建一个将字符串插入指定位置的自定义插入函数。
例如:
"tesanimalt"
将返回:
String& String::insert(int pos, const String& str) {
char newString[100];
strncpy(newString, chars, pos);
newString[pos] = '\0';
strcat(newString, str.chars);
strcat(newString, chars + pos);
return *this;
}
到目前为止:
foldr
答案 0 :(得分:0)
代码存在很多问题,其中一个问题是您的String
似乎不包含任何实际存储空间。您改为将本地数组作为临时变量分配,然后将其丢弃。
如果没有MCVE,就无法解决这个问题,因为我们无法看到String
应该如何工作。似乎有某种名为chars
的成员,你可能想复制到那个成员。但是,如果它包含分配有malloc()
或new[]
的缓冲区,则如果 m 是封闭字符串的长度,则可能 n 插入字符串的长度,并插入位置 i :
chars
设置为可能更改的值。