您的位置:首页 > 其它

strcpy()和memcpy()用法总结和比较

2012-11-03 15:32 323 查看
编写程序中我们常常需要对一个内存块的内容进行复制,有以下两个函数常常会用到,专门针对字符串的复制函数strcpy()/strcpy_s()和不针对具体的数据类型而仅仅复制一连续内存的memcpy()函数,这两个函数用法上有一些异同,下面我们分别进行分析:

1.strcpy()用法

char *strcpy(char *dest, const char *src);

功能:从src地址开始的以'\0'结束符结束的字符串复制到以dest开始的地址空间

返回:指向dest的指针

#include <string.h>

int main(void)

{

char string[80];

strcpy(string, “Hello world”);

printf(“%s”, string);

return 0;

}

注:

其中源字符串是const char *类型

2. memcpy()的用法

void *memcpy(void *dest, const void *src, size_t n);

功能:从源src所指的内存起始地址拷贝n个字节到目标dest所指的内存起始地址

返回:函数返回dest的指针

3.内存复制函数总结:

strcpy(),memcpy()二者的区别

复制的内容不同,strcpy只能复制字符串,memcpy()可复制任意内容

复制的方法不同,strcpy不需要指定长度,遇到复制字符串结束标志\0结束,memcpy()需要第三个参数指定复制的字节数

用途不同,通常在复制字符串时用strcpy,复制其他数据类型时用memcpy()

二者的相同点:

源地址的类型都是const类型的指针,目的地址类型是指针类型

补充:

strcmp()函数使用方法

int strcmp(const char *s1, const char *s2);

比较字符串s1, s2,相等时返回0,传递的参数均是const char *类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: