mem
void *memset(void *dest, int c, size_t count);
- 将dest前面count个字符置为字符c。返回dest的值。
void *memmove(void *dest, const void *src, size_t count);
- 从src复制count字节的字符到dest;如若出现“重叠”,先将src复制到缓冲区,再进行move。返回dest的值。
- char str[] = “memmove can be very useful……”;
memmove (str+20,str+15,11);
此时str为:memmove can be very very useful.
void *memcpy(void *dest, const void *src, size_t count);
- 从src复制count字节的字符到dest;不进行“重叠”处理。返回dest的值。
void *memchr(const void *buf, int c, size_t count);
- 在buf前面的count字节中查找首次出现字符c的位置。查找成功则返回buf中出现c的位置指针,否则返回NULL。
void *_memccpy(void *dest, const void *src, int c, size_t count);
- 从src复制到dest,遇到字符c被复制/count个字符被复制后停止。若c被复制,返回src中c后一个字符指针,否则返回NULL。
int memcmp(const void *buf1, const void *buf2, size_t count);
int memicmp(const void *buf1, const void *buf2, size_t count);
str
size_t strlen(const char *string);
char *strrev(char *string);
char *_strupr(char *string);
char *_strlwr(char *string);
char *strchr(const char *string, int c);
char *strrchr(const char *string, int c);
char *strstr(const char *string, const char *strSearch);
char *strdup(const char *string);
char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t count);
- 将src的count个字节添加到dest串后面,count大于src长度时忽略,不能处理“重叠”。
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t count);
- 将src的count个字节复制到dest,count大于src长度时用NULL填充,不能处理“重叠”。
char *strset(char *dest, int c);
char *strnset(char *dest, int c, size_t count);
size_t strspn(const char *dest, const char *set);
- 查找dest中首个不在字符集set中的字符,返回该字符之前的字符数。
size_t strcspn(const char *dest, const char *set);
- 查找dest中首个在字符集set中的字符,返回该字符之前的字符数。
char *strspnp(const char *dest, const char *set);
- 查找dest中首个不在字符集set中的字符,返回该字符的指针。
char *strpbrk(const char *dest, const char *set);
- 查找dest中首个在字符集set中的字符,返回该字符的指针。
char *strtok(char *token, const char *delim);
- 将token在字符集delim中的字符置为’\0’,每次调用返回下一个非0字符指针。
char s[] = "ab-cd:ef;gh:i-jkl;mnop;qrs-tu:vwx-y;z";
char *delim = "-:"
char *p;
printf("%s\n", strtok(s, delim));
while((p = strtok(NULL, delim)))
printf("%s\n", p);
输出:
ab
cd
ef;gh
i
jkl;mnop;qrs
tu
vwx
y;z
int strcmp(const char *str1, const char *str2);
int stricmp(const char *str1, const char *str2);
int strncmp(const char *str1, const char *str2, size_t count);
int strnicmp(const char *str1, const char *str2, size_t count);