字符串拷贝
字符串拷贝函数
#include <stdio.h>
void my_strcpy(char *dst, char *src)
{
int i = 0;
while( *(src+i) != '\0')
{
*(dst+i) = *(src+i);
i++;
}
//结束符
*(dst+i) = 0;
}
int main(int argc, char const *argv[])
{
char src[] = "hello mike";
char dst[100];
char *p = dst;//拓展
my_strcpy(dst, src);//自定义拷贝函数
my_strcpy(p , src);//这样也是可以的
printf("dst = %s\n", dst);
return 0;
}
字符串拷贝时要注意的问题
#include <stdio.h>
int main(int argc, char const *argv[])
{
char buf[100];
char *p;
//1、p指向buf的首元素
//2、strcpy()是给p所指向的内存拷贝内容,字符串拷贝给了buf
strcpy(p, "hello mike abc");
printf("p = %s,buf = %s\n", p, buf);
return 0;
}
int main01(int argc, char const *argv[])
{
char *p;
//1、不是给p变量拷贝内容
//2、给p所指向的内存拷贝内容
//3、p是野指针,给野指针所指向的内存拷贝内容,导致段错误
strcpy(p, "hello mike adc");
return 0;
}

680

被折叠的 条评论
为什么被折叠?



