C语言学习之我见-strcpy()字符串复制函数

strcpy()函数,用于两个字符串值的复制。
(1)函数原型

char * strcpy(char * _Dest,const char * _Source);

(2)头文件

string.h

(3)功能

将从const char * _Source到''结尾的字符串(包括'')复制到char * _Dest
所指的字符串处。
返回值char * = char * _Dest

(4)基础实例代码

    char a[30] = "12345678901234567890";
	char b[]="zobol";
	for(int i=0;i<30;++i)
	{
		printf("%d ",a[i]);//将字符数组中的所有值都输出
	}
	for(int i=0;i<6;++i)
	{
		printf("%d ",b[i]);
	}

	strcpy(a,b);//关键函数
	for(int i=0;i<30;++i)
	{
		printf("%d ",a[i]);
	}
	printf("%s
",a);

(5)输出情况
在这里插入图片描述

(6)问题1:对于char * _Dest所指向字符数组,''后面的值会被替换吗?
回答:不会,这个函数只指向字符串,不会自动将后面的值填充为''
在这里插入图片描述

(7)问题2:如果char * _Des所指向的字符数组如果空间不够大,会怎么样?
回答:C语言这个函数无法得知数组的最大容量,会强制填充,有可能会污染后面的数据,发生溢出现象。

(8)问题3:为什么不直接pts1=pts2?
回答:因为在C语言中,数组的名字不是数组的“对象”,而只是指向数组第一个元素的首地址。

a=&a[0]

如有帮助,欢迎关注我的个人公众号:zobol的魔法藏书室

原文地址:https://www.cnblogs.com/zobol/p/14357861.html