急!谁能帮我看看这个程序那里有问题,帮我改改好吗.谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/22 04:56:51
#include<stdio.h>;
#include<string.h>
char *insert(char s1[],char s2[],int n)
{
char *p,*q,*t;
int i,j,k;
p=s1,q=s2;
j=strlen(s2);
k=strlen(s1);
for(i=0;i<n;i++)
*t++=*p++;
for(i=0;i<j;i++)
*t++=*q++;
for(i=0;i<k-n;i++)
*t++=*p++;
*t='\0';
return t;
}
main()
{
char s1[]="abcdefg",s2[]="hijklm";
char *t;
t=insert(s1,s2,3);
printf("%s",t);

}
指针函数是将字符串s1中的指定位置n处插入字符串s2

数组名可以当作指针使用,但指针不能当作数组使用吧。
简单改了一下,不是太完善,但能够运行。
#include<stdio.h>
#include<string.h>
#include<iostream.h>
insert(char s1[],char s2[],int n,char t[50])
{
char *p,*q;
int i,j,k;
p=s1;
q=s2;
j=strlen(s2);
k=strlen(s1);
for(i=0;i<n;i++)
*t++=*p++;
for(i=0;i<j;i++)
*t++=*q++;
for(i=0;i<k-n;i++)
*t++=*p++;
*t='\0';
}
void main()
{
char s1[]="abcdefg",s2[]="hijklm";
char t[50];
insert(s1,s2,3,t);
printf("%s",t);

}