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()二者的区别

  1. 复制的内容不同,strcpy只能复制字符串,memcpy()可复制任意内容
  2. 复制的方法不同,strcpy不需要指定长度,遇到复制字符串结束标志\0结束,memcpy()需要第三个参数指定复制的字节数
  3. 用途不同,通常在复制字符串时用strcpy,复制其他数据类型时用memcpy()

二者的相同点:

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

 

补充:

strcmp()函数使用方法

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

比较字符串s1, s2,相等时返回0,传递的参数均是const char *类型。

posted @ 2012-11-03 15:32  liuhao2638  阅读(392)  评论(0)    收藏  举报