什么是c++字符串拷贝函数

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:43:43
strcpy(s1,s2),是把s2中的字符串拷到s1里面去,那s1里面的元素怎么办?老是和strcat(s1,s2)混淆,怎么理解?菜鸟刚学

strcpy(s1,s2)是值copy函数 将s2的值给s1,s1以前的值将消失,取代的是s2的值 前提是 s1的长度必须大于等于s2的长度 否则 失败
strcat(s1,s2)连接字符串 将s2的值连在s1的 后面
即如果 s1 = “aaa” s2 = ”b“ strcat(s1,s2)
s1 = ”aaab“ s2 = ”b” 前提是s1 的长度大于 s1的字符长度+ s2 的字符长度

各类型的拷贝构造函数如下所示:
1.void bcopy(const void *src, void *dest, size_t n);
  功能: 拷贝n字节内容从src到dest
  说明: 该函数在内存重叠情况下仍然正常,该函数建议不再使用,而是用memcpy代替
  返回值: 无
  2. void *memcpy(void *dest, const void *src, size_t n);
  功能: 拷贝n字节内容从src到dest
  说明: src和dest在内存中不可重叠,如果重叠请使用memmove代替
  返回值: 返回 dest 地址
  3. void *memmove(void *dest, const void *src, size_t n);
  功能: 拷贝n字节内容从src到dest
  说明: src和dest在内存中可以重叠,但是效率比memcpy略低!
  返回值: 返回 dest 地址
  4. void *memccpy(void *dest, const void *src, int c, size_t n);
  功能: 拷贝n字节内容从src到dest,但是如果碰到c字符则停止拷贝.
  返回值: 返回NULL或者字符c的下一地址
  5. char *stpcpy(char *dest, const char *src);
  功能: 拷贝src到dest
  说明: 该函数不在ANSI和POSIX标准之内;vc6.0不支持
  返回值: 返回 dest