当前位置:   article > 正文

库函数strcpy函数的实现_strcpy实现

strcpy实现

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

此时这里的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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里此时是会出错的,因为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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号