@songying
2019-02-19T14:27:38.000000Z
字数 1914
阅读 1035
c++
c-string 字符串实际上使用\0
终止的一维字符数组。
char str[] = "hello"; // 字符数组
char *str = "hello"; // 字符串
该头文件定义了一个变量类型,一个宏以及各种操作字符数组的函数。
变量或宏 | 说明 |
---|---|
#include <cstring> |
引入c标准库 |
size_t |
sizeof 返回的无符号整型 |
NULL |
宏常量,实现定义的空指针常量的值 |
函数 | 说明 |
---|---|
char *strcpy(char *str1, const char *str2); |
将str2(包括\0 )拷贝到字符串str1中,并返回str1 |
char *strncpy(char *str1, const char *str2, size_t count); |
把字符串str2中最多count个字符拷贝到字符串str1中,并返回str1。如果str2中少于count个字符,那么就用'\0'来填充,直到满足count个字符为止。 |
char *strcat(char *str1, const char *str2); |
把str2(包括'\0')拷贝到str1的尾部(连接),并返回str1。其中终止原str1的'\0'被str2的第一个字符覆盖。 |
char *strncat(char *str1, const char *str2, size_t count); |
把str2中最多count个字符连接到str1的尾部,并以\0 终止str1,返回str1。其中终止原str1的\0 被str2的第一个字符覆盖。 |
函数 | 说明 |
---|---|
size_t strlen(const char *str); |
返回字符串str的长度,'\0'不算在内。 |
int strcmp(const char *str1, const char *str2); |
按字典顺序比较两个字符串,str1 < str2 返回值小于0;str1 == str2 返回值等于0; str1 > str2 ,返回值大于0 |
int strncmp(const char *str1, const char *str2, size_t count); |
按字典顺序比较两个字符串,最多比较count个字符 |
char *strchr(const char *str, int ch); |
返回指向字符串str中字符ch第一次出现的位置的指针,如果str中不包含ch,则返回NULL。 |
char *strrchr(const char *str, int ch); |
返回指向字符串str中字符ch最后一次出现的位置的指针,如果str中不包含ch,则返回NULL。 |
size_t strspn(const char *str1, const char *str2); |
返回字符串str1中由字符串str2中字符构成的第一个子串的长度。 |
size_t strcspn(const char *str1, const char *str2); |
返回字符串str1中由不在字符串str2中字符构成的第一个子串的长度。 |
char *strpbrk(const char *str1, const char *str2); |
返回字符串str2中的任意字符第一次出现在字符串str1中的位置的指针;如果str1中没有与str2相同的字符,那么返回NULL。 |
char *strstr(const char *str1, const char *str2); |
返回字符串str2第一次出现在字符串str1中的位置的指针;如果str1中不包含str2,则返回NULL。 |
char *strtok(char *str1, const char *str2); |
返回下一个str2起始的指针,若无,返回NULL |
函数 | 说明 |
---|---|
void *memcpy(void *to, const void *from, size_t count); |
把from中的count个字符拷贝到to中。并返回to。 |
void *memmove(void *to, const void *from, size_t count); |
功能与memcpy类似,不同之处在于,当发生对象重叠时,函数仍能正确执行。 |
int memcmp(const void *buf1, const void *buf2, size_t count); |
比较buf1和buf2的前count个字符,返回值与strcmp的返回值相同。 |
void *memchr(const void *buffer, int ch, size_t count); |
返回指向ch在buffer中第一次出现的位置指针,如果在buffer的前count个字符当中找不到匹配,则返回NULL。 |
void *memset(void *buf, int ch, size_t count); |
把buf中的前count个字符替换为ch,并返回buf。 |