strcpy()和memcpy()用法总结和比较
编写程序中我们常常需要对一个内存块的内容进行复制,有以下两个函数常常会用到,专门针对字符串的复制函数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 *类型。
浙公网安备 33010602011771号