谢谢,我改了一下得到了我想要的了下面是我改的。同时我想问一下有没有char *copy(char *s1,char *s2,int m)中的返回怎么做呢?
#include <stdio.h>
#include <string.h>
void *copy(char *s1 ,char *s2 ,int m )
{
int l2 ,i;
char *p1 ,*p2;
l2 = strlen(s2);
p1 = s2 + l2;//p1指向s2的'\0'
p2 = s1 + m - 1;
for(i=1 ;*p2!='\0' ;i++) //增量运算符所作用的运算对象只能是变量,不能是常量或由运算符构成的表达式。
{
//例如,(x+y)++、++5 都是不正确的。 增量运算符作用于
*p1++ = *p2++;
//变量以后,与变量一起构成了一个新的表达式──增量表达式。
}
//增量表达式不能出现在赋值表达式的左边。例如,i++=1 是不允许的。
*p1 = '\0';
printf("%s\n" ,s2);
}
void main()
{
int m = 0;
char a[80] ,b[80];
printf("输入字符串1:\n");
gets(a);
printf("输入字符串2:\n");
gets(b);
printf("输入m的值:\n");
scanf("%d",&m );
copy(a ,b ,m );
}