一、概述
1、memset
原型:extern void *memset(void *buffer, char c, int count);
用法:#include <string.h>
功能:把buffer所指内存区域的前count个字节设置成字符c
说明:返回指向buffer的指针
2、
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#inclue <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针
memccpy
原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制
说明:返回指向字符ch后的第一个字符的指针,如果src前count个字节中不存在ch则返回NULL。
memmove
原型:extern void *memmove(void *dest, const void *src, unsigned int count)
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指向内存区域
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针
memcmp
原型:extern int memcmp(void *buf1, void *buf2, unsigned int count)
用法:#include <string.h>
功能:比较内存区域buf1和buf2的前count个字节
说明:
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
3、
strset
原型:extern char *strset(char *s, char c)
用法:#include <string.h>
功能:把字符串s中的所有字符都设置成字符c
说明:返回指向s的指针
strcpy
原型:extern char *strcpy(char *dest, char *src)
用法:#include <string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针
strncpy
原型:extern char *strncpy(char *dest, char *src, int n)
用法:#include <string.h>
功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。
说明:
如果src的前n个字节不含NULL字符,则结果不会一NULL字符结束。
如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
strcmp
原型:extern int strcmp(char *s1, char *s2)
用法:#include <string.h>
功能:比较字符串s1和s2
说明:
当s1<s2时,返回<0
当s1=s2时,返回=0
当s1>s2时,返回>0
strncmp
原型:extern int strcmp(char *s1, char *s2, int n)
用法:#include <string.h>
功能:比较字符串s1和s2的前n个字符
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
strlen
原型:extern int strlen(char *s)
用法:#include <string.h>
功能:计算字符串s的长度
说明:返回s的长度,不包括结束符NULL
函数源代码:
//stirng.c==================================================
char *strcpy(char *strDes, const char*strSrc)
{
assert((strDes!= NULL) && (strSrc != NULL));
char *address =strDes;
while ((*strDes++ = *strSrc ++) != '\0')
NULL;
return address;
}
char *strchr_(char *str, int c)
{
assert(str != NULL);
while ((*str != (char) c) && (*str != '\0'))
str ++;
if (*str != '\0')
return str;
return NULL;
}
char *strchr(const char *str, int c)
{
assert(str != NULL);
for (; *str != (char) c; ++ str)
if (*str