memcpy函数, strcpy(), memmove().

来源:互联网 发布:haproxy windows版 编辑:程序博客网 时间:2024/04/30 06:07
    原型:extern void *memcpy(void *dest, void *src, unsigned int count);
  头文件:#include <string.h>
  功能:由src所指内存区域复制count个字节到dest所指内存区域。
  说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
  举例
  // memcpy.c
  #include <stdio.h>
  #include <string.h>
  int main(int argc, char* argv[])
  {
  char *s="Golden Global View";
  char d[20];
  clrscr();
  memcpy(d,s,strlen(s));
  d[strlen(s)]='/0';
  printf("%s",d);
  getchar();
  return 0;
  }
  截取view
  #include <string.h>
  int main(int argc, char* argv[])
  {
  char *s="Golden Global View";
  char d[20];
  memcpy(d,s+14,4);
  //memcpy(d,s+14*sizeof(char),4*sizeof(char));也可
  d[5]='/0';
  printf("%s",d);
  getchar();
  return 0;
  }
  输出结果:
  View
  初始化数组
  char msg[10];

  memcpy(msg,0,sizeof(msg));

///////////////////////////////////////////////////////////////////////////////

指点strcpy和memcpy到底有什么不同

///////////////////////////////////

答:strcpy自动检查字符串结束,就是/0结束符; memcpy需要你来指定拷贝的长度,他不检查/0结束符. strcpy两个参数,memcpy三个参数. strcpy效率低,memcpy效率高.


答:strcpy的参数是字符指针(字符串), memcpy的参数是void指针,因此它不仅能复制字符串,而且可以复制其它类型的数据(但要给出复制的字节数)..


答:strcpy是字符串拷贝,在源出现'/0'时结束拷贝;memcpy是内存拷贝,由源拷贝指定长度(单位大小×数量)的内存到目标。


答:memcpy要指定长度啊,strcpy自动拷贝到字符串结束


答:strcpy拷贝到/0为止memcpy拷贝指定的长度
/////////////////////////////////////////////////////////////////////////////////////////

如果源和目的参数有重叠, memmove() 提供有保证的行为。而 memcpy() 则不能提供这样的保证, 因此可以实现得更加有效率