库函数strcpy函数的实现

  • Post author:
  • Post category:其他


strcpy指的是字符串的拷贝,就是把源字符串拷贝到目标空间里面

在这里插入图片描述
1、源字符串的拷贝是是以‘\0’结尾的,同时会将字符串中的’\0’拷贝过去

#include<stdio.h>
int main(){
	char arr1[20]="xxxxxxxxxxxxx";
	char arr2="hello world";
	strcpy(arr1,arr2);
	printf("%s",arr1);
	return 0;
}

此时这里的arr1会变成是hello world\0x,但是打印出来的arr1是hello world

2、目标空间的字符串必须是可变的,不能是常量字符串

#include<stdio.h>
int main(){
	char* p="hello world";
	char arr[]="abcdef";
	strcpy(p,arr);
	printf("%s",p);
	return 0;
}

这里此时是会出错的,因为p指向的常量字符串,所有不能这样写

3、源字符串的空间必须足够大,如果字符串常量不够大,拷贝过去是会出错的

4、模拟实现strcpy

char* my_strcpy(char*dest,const char* str) {
	assert(dest);
	assert(str);
	char* ret = dest;
	while (*dest++ = *str++) {
		;
	}
	return ret;
}

int main() {
	char arr[10] = { 0 };
	char* p = "abcdef";
	my_strcpy(arr, p);
	printf("%s", arr);
	return 0;
}



版权声明:本文为m0_48857897原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。