从品牌网站建设到网络营销策划,从策略到执行的一站式服务
在Insert函数的str是局部变量,在执行完insert函数的时候就释放了
永善网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联建站于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
依据你的函数修改可如下:
#includestdio.h
#includestring.h
#includestdlib.h
char *Insert(char *s, char *q, int n)
{
char *str=(char *)malloc(50);//----malloc的生存周期使整个程序结束或是你free掉
char *strcp=str;
int i = 0;
for (i=0;*s!='\0';i++)
{
if(i=n-1 *q!='\0')
{
strcp[i] = *q;
q++;
}
else
{
strcp[i] = *s;
s++;
}
}
strcp[i+1]='\0';
return str;
}
int main()
{
int i;
char str[] = "Hello world!";
char strin[] = "big";
char *strcp;
printf("Please input the position you want to insert:\n");
scanf("%d", i);
strcp = Insert(str,strin,i);
puts(strcp);
}
还有几点比如char str = "Hello world!";----str指向的是字符串常量,是固定内存不能添加插入修改等操作,故修改为char str[]="Hello world!"
勉强着用吧,调试已经通过.
#include stdio.h
#include stdlib.h
#include math.h
#include string.h
#define max 100
void main()
{
char str[max]={0};
char strcp[max]={0};
int n=0;
int m;
printf("input string:");
scanf("%s",str);
for(int i=0;str[i]!='\0';i++)
{
m=(int)str[i];
if((m%2)==0)
{
strcp[n]=str[i];
n++;
}
}
printf("%s\n",strcp);
strcpy(str,strcp);
printf("%s\n",str);
}
前面的对,后面的代表的地址是s+i*100*1008sizeof(char);你算算跑哪了。
因为s是个多维数组的数组名,所以直接用s加1的话代表的是从s处的地址加了整个多维数组的长度得到的地址。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图