#include <stdio.h>;
int mycpy(char* dst,const char* src)
{
int idx = 0;
while (src[idx] != '\0')
{
dst[idx] = src[idx];
idx++;
}
dst[idx] = '\0';
return dst;
}
//用自己的代码实现strcopy
//想知道这个函数怎么用
//为什么参数表那里放的是两个指针
//这个函数不是数组版本吗?
#include <stdio.h>
int mycpy(char *dst, const char *src) {
int idx = 0;
while (src[idx] != '\0') {
dst[idx] = src[idx];
idx++;
}
dst[idx] = '\0';
return idx;
}
int main()
{
char a[] = "abcdefg";
char b[32];
mycpy(b, a); // 这里数组会自动退化成char *类型指针
printf("%s\n", b);
return 0;
}
指针和数组在参数上是一样的,都是作为指针类型传递的。所以没啥问题
调用函数的例子:
char a[] = "hello";
char b[10] = {0};
mycpy(b,a);
mycpy函数的返回值应该改为int*类型
因为你要实现的功能是直接改变dst的内容,而不是以src和dst两个数组合并之后生成新数组再return回来
那么如果dst不是指针,你就没法直接操作dst了呀
src当然可以声明为数组,但是既然dst是指针,src也是指针不好吗,这样访问方式就一致了呀,不用额外处理
至于这个函数怎么用,你代码都写好了自己不会用吗
你要先建立两个字符串类型的变量,然后传入函数
mycpy(a,b),就是把b的内容复制给a
返回值是a的首地址
可以用数组形式的,数组和指针,在访问的时候是打通的
可以看这篇博客了解一下https://blog.csdn.net/m0_64212811/article/details/126200617