多字节字段的操作有两组函数,它们不对数据做解释,也不假设数据是以空字符结束的C字符串。这些字段可能包含多个字节的0,但又不是C字符串。在头文件<string.h>中定义、名字以str打头的函数处理的是以空字符结束的C字符串。
第一组函数名字以b打头,起源于4.2BSD,第二组函数名字以mem打头,起源于ANSI C标准,有任何支持ANSI C库的系统提供。
#include<strings.h>
void bzero(void* dest, size_t nbytes);
void bcopy(const void *src, const void *dest, size_t nbytes);
int bcmp(const void *ptr1, const void *ptr2, size_t nbytes); 返回;0--相等,非0--不相等
下面的函数是ANSI C函数:
#include<string.h>
void *memset(void *dest, int c, size_t len);
void *memcpy(void* dest, const void *src, size_t nbytes);
int memcmp(const void *ptr1, const void* ptr2, size_t nbytes); 返回:0--相同,>0或<0--不相同