读书人

求教向一个字符串中插入另外一个字符

发布时间: 2012-11-07 09:56:10 作者: rapoo

求教,向一个字符串中插入另外一个字符串代码有点问题,求修改。。
# include<stdio.h>
# include<string.h>
# include<stdlib.h>
# include<malloc.h>
# define N 5
char * InsertSubstring( char * string ,int pos, char *substring);
int main()
{
int pos = 0;
char *p = NULL;
char str1[N];
char str2[N];
gets(str1);
gets(str2);
scanf("%d",&pos);
p =InsertSubstring( str1 ,pos, str2);
puts(p);

return 0;
}
char * InsertSubstring( char * string ,int pos, char *substring)
{
int i = 0;
if(pos < 0)
{
printf("parameter is wrong!");
exit(1);
}
else
{
if((strlen(string)+strlen(substring)) > N)
{
realloc(string, (strlen(string)+strlen(substring)+1));//该if语句有问题,
}

for(i = strlen(string)-1 ; i >= pos; i--)
{
string[i+ strlen(substring)] = string[i];
}
string[strlen(string)+strlen(substring)] = '\0';

for(i = 0; i <strlen(substring);i++)
{
string[pos + i] = substring[i];
}
}
return string;
}

[解决办法]
你的string和substring都是指针,你用strlen(*string)和strlen(*sunstring)试试
[解决办法]
代码结构没问题,注意N的大小,不要越界,程序可以跑起来,我试过的
[解决办法]
把realloc改成malloc试试
个人觉得,string 是一个指向数组的指针。
而数组的存储方式有点类似于常量的感觉,不能随便修改吧。
所以,还是用malloc重新分配内存空间。

读书人网 >C语言

热点推荐