当前位置: C语言 -- 标准库 -- <string.h> -- memmove

memmove函数


概要:
#include <string.h>
void *memmove(void *s1, const void *s2, size_t n);

描述:

该函数从参数s2指向的对象复制n个字符到参数s1指向的对象。

整个复制过程就像先从参数s2指向的对象将n个字符复制到一个临时数组(该临时数组与参数s1s2指向的对象均不重叠。),然后再从临时数组将n个字符复制到参数s1指向的对象。参数s1s2指向的对象可以重叠。

ISO/IEC 9899:2018标准定义了该函数的安全版本memmove_s


参数:
void *s1

指向目标对象的指针,复制的内容将存入该对象。

const void *s2

指向源对象的指针,从该对象复制内容。

size_t n

复制的字符数。


返回值:

函数返回s1的值。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
/*函数memmove范例*/

#include <stdio.h>
#include <string.h>

int main(void)
{
    char str[] = "Chen xiaoer";

    memmove(str, (str+5), (strlen(str)-5+1));
    puts(str);
    
    return 0;
}


输出:

xiaoer


相关内容:
memcpy 复制内存区域字符序列的函数。
strcpy 复制字符串的函数。
strncpy 从字符串中复制限定数量字符的函数。