大家看看我这个用于插入字符串的函数错哪儿了?C++

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:17:04
类函数:
String String::insert(String &string1,unsigned int pos,String string2)
{
unsigned int a=string1.GetLEN();//GetLEN是获取长度的函数
unsigned int b=string2.GetLEN();
String s1;
for(unsigned int i=0;i<pos;i++)
s1[i]=string1[i];
for(unsigned int j=pos,k=0;j<pos+b;j++,k++)
s1[j]=string2[k];
if(a>pos)
{
for(unsigned int l=pos+b,m=pos;l<a+b;l++,m++);
s1[l]=string1[m];
}
return s1;
}
调用:
String str4("kkkkkkkkk");
String str5("ggggggggg");
String &cite=str5;
str5.insert(cite,3,str4);
为什么无法在3的后面插入str4??

你的String类有没有重载[]操作符?如果没有你的这string1[];操作就有问题了,还有你的String类有没有动态内申请?如果没有s1[j]=string2[k];这个操作就有问题,没见到s1那里有内存申请呀。反正问题比较多,没有完整的代码很难讲。