1. bcmp
原型:extern int bcmp(const void *s1, const void *s2, int n);
用法:#include <string.h>
功能:比较字符串s1和s2的前n个字节是否相等
说明:相等返回0,否则返回非0值
2. bcopy
原型:extern void bcopy(const void *src, const void *dest, int n);
用法:#include <string.h>
功能:将字符串src的前n个字节复制到dest中
说明:bcopy不检查字符串中的空字节NULL,函数没有返回值
3. bzero
原型:extern void bzero(void *s, int n);
用法:#include <string.h>
功能:将字符串s的前n个字节置为0
说明:没有返回值
4. memcpy
原型:extern void *memcpy(void *dest, void* src, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针
5. memccpy
原型:extern void *memccpy(void *dest, void* src, unsigned char ch, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制不多于count字节到dest所指内存区域,如果遇到字符ch则停止复制
说明:返回值指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL,ch被复制
6. memchr
原型:extern void *memchr(void *buf, char ch, unsigned int count);
用法:#include <string.h>
功能:从buf所指内存区域的前count个字节查找字符ch
说明:当一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL
7. memcmp
原型:extern void *memcmp(void *buf1, void *buf1, unsigned int count);
用法:#include <string.h>
功能:比较内存区域buf1和buf2的前count字节
说明:当buf1<buf2时,返回值<0
8. memmove
原型:extern void *memmove(void *dest, const void *src, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改,函数返回指向dest的指针
1 #include <stdio.h> 2 #include <string.h> 3 int main(void) 4 { 5 char* s = "hello world"; 6 memmove(s, s+3, strlen(s)-3); 7 s[strlen(s)-3]=0; 8 printf("s : %s\n", s); 9 10 return 0; 11 } 12 /* 输出:s : lo world */
memmove示例
9. memset
原型:extern void *memset(void *buffer, int c, int count);
用法:#include <string.h>
功能:把buffer所指内存区域的前count字节设置成字符c
说明:返回指向buffer的指针
10. movmem
原型:extern void *movmem(void *src, void* dest, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改,函数返回指向dest的指针
11. stpcpy
原型:extern char *stpcpy(char* dest, char* src);
用法:#include <string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中
说明:src和dest所指内存区域不可以重叠且dest必须有足够的控件来容纳src的字符串,返回指向dest结尾处字符(NULL)的指针
C语言常见字符串操作函数总结