C语言内存函数向编程人员提供复制、比较与设置内存块的有效方式,这些函数属于字符串函数,放在库文头文件string.h中声明,C89增补1增加了5个操纵宽字符数组的新函数。
string.h中的这些函数名称以mem开头,内存块在标准C语言中用void*类型指针指定,常用函数原型如下:
void* memchr(const void *ptr, int val, size_t len);
int memcmp(const void *ptr1, const void *ptr2, size_t len);
int memcpy(void *dest, const void *src, size_t len);
int memmove(void *dest, const void *src, size_t len);
void* memset(void *ptr, int val, size_t len);
memchr搜索以ptr开头的第一个len个字符中第一次出现的val,返回包含val的第一个字符指针。
memcmp比较从ptr1开头的前len个字符与从ptr2开头的前len个字符,如果第一个字符串在词法上小于第二个字符串,则返回负值,大于时返回正直,否则返回0。
memcpy与memmove都从src到dest复制len个字符并返回dest值,差别在于memmove能对共用内存区正确工作。
memset将val复制到从ptr开始的每len个字符。