int main(void)
char*p1,*p2, str[50]="ABCDEFG";
p1="abcd";p2="efgh";
strcpy(str+1,p2+1); strcpy(str+3,p1+3);
printf("%s", str);
return 0;
int main(void)
char*p1,*p2, str[50]="ABCDEFG";
p1="abcd";p2="efgh";
strcpy(str+1,p2+1); strcpy(str+3,p1+3);
printf("%s", str);
return 0;
int main(void)
char*p1,*p2, str[50]="ABCDEFG";
p1="abcd";
p2="efgh";
strcpy(str+1,p2+1); //str为"Afgh"即: 把BCDEFG替换为fgh
strcpy(str+3,p1+3);//str为"Afgd"即: 把h替换成d
printf("%s", str);
return 0;
strcpy(str+1,p2+1); //这里 是将p2数组第二个值f,赋值给str1[1-3]='fgh'
strcpy(str+3,p1+3);//这里 是将p1数组第三个值f,赋值给str1[3]='d',将h覆盖掉
str[0]=A str1[1]='f' str1[2]='g' str1[3]='d' ,所以值结果是Afgd
#define N "0123456789ABCDEF"
#include <stdio.h>
int main(void) {
char *p1, *p2, str[50] = "ABCDEFG";
p1 = "abcd";
p2 = "efgh";
strcpy(str + 1, p2 + 1);
strcpy(str + 3, p1 + 3);
printf("%s", str);
return 0;
}