memcpy 和 strcpy()

相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()

表头文件: #include <string.h>
定义函数: void *memcpy(void *dest, const void *src, size_t n)
函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束
返回值:   返回指向dest的指针
附加说明: 指针src和dest所指的内存区域不可重叠
原型声明:extern char *strcpy(char* dest, const char *src);
头文件:#include <string.h>
功能:strcpy()把从src地址开始且含有"\0"(NULL) 结束符的字符串复制到以dest开始的地址空间,遇到“\0”字符串结束符,复制结束。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
\0代表字符数串的结束标志
也就是字符数组的最后一位加上的'\0'
\0的ASCII码为0,也就是空字符
测试代码:
#include <string.h>
#include <stdio.h>

int main()
{
	char a[30] = "string (a)";
	char b[30] = "hi\0zengxiaolong";
	int i;

	strcpy(a, b);             //a[30] = "hi\0ing (a)"
	printf("strcpy():");
	for(i = 0; i < 30; i++)
		printf("%c", a[i]);   //hi ing (a)
	
	memcpy(a, b, 30);         //a[30] = "hi\0zengxiaolong"
	printf("\nmemcpy():");
	for(i = 0; i < 30; i++)
		printf("%c", a[i]);   //hi zengxiaolong
		
	printf("\n i = %d\n", i); //30

}
运行结果:
root@android-desktop:/zhanli/test/memcpy_strcpy# gcc -o test memcpy_strcpy.c 
root@android-desktop:/zhanli/test/memcpy_strcpy# ./test 
strcpy():hiing (a)
memcpy():hizengxiaolong
 i = 30

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值