编写函数两个字符串的拷贝(

3、 编写
,其功能是:实现两个字符串的拷贝(不要使用库函数strcat),即把p2所指
的字符串拷贝到p1所指的字符串数组。 (于函数的函数首部已经规定,不允许改动)
#include <stdio.h>
void fun(char p1[], char p2[])
int main()
chars1[801,s2[40] :


int fun(char *p1,char *p2){
    while (*p1!='\0'){
        *p2++=*p1++;
    }
    *p2='\0';
}

你要字符串连接吧?而不是复制吧?

img

#include <stdio.h>
void fun(char p1[], char p2[]);
int main()
{
    char s1[80], s2[40];
    scanf("%79s", s1);
    scanf("%39s", s2);
    fun(s1, s2);
    puts(s1);
    return 0;
}
void fun(char p1[], char p2[])
{
    while (*p1 != '\0')
        p1++;

    while (*p1++ = *p2++)
        ;
}


供参考:

#include <stdio.h>
void fun(char p1[], char p2[]);
int main()
{
    char s1[80] = "abcde", s2[40] = "123";
    fun(s1, s2);
    puts(s1);
    return 0;
}
void fun(char p1[], char p2[])
{
    char* pa = p1, * pb = p2;
    while (*pa)  pa++;
    while (*pb) *pa++ = *pb++;
    *pa = '\0';
}