C和指针详解------字符解析

字符串长度

size_t strlen( char const *string);

不计算’\0’.

复制字符串

char *strcpy(char *dst, char const *src);
char *strncpy(char *dst, char const *src, size_t len);

dst必须是一个字符数组或者是一个指向动态分配内存的数组的指针,不能使用字符串常量。
strncpy向dst写入len个字符。
注意,在使用strncpy的时候,结尾是不加’\0’的,所以要自己手动添加。而strcpy是自动帮你添加的。

连接字符串

char  *strcat(char *dst, char const *src);
char *strncat(char *dst, char const *src, size_t len);

strcat要求dst参数原先已经包含了一个字符串,可以是空字符串。。他找到这个字符串的末尾,并把src字符串的一份拷贝添加到这个位置。
注意 strncat是会在结尾自动添加一个’\0’的,他和strcpy不同。

字符串比较

int strcmp(char const *s1, char const *s2);
int strncmp(char const *s1, char const *s2, size_t len);

如果相等,它的返回值是0。s1 与 s2 比较,大于返回1,小于返回-1。

查找一个字符

char *strchr(char const *str, int ch);
char *strrchr(char const *str, int ch);

strchr查找的是第一次出现的位置,strrchr查找的是最后一次出现的位置。

查找任何几个字符

char *strpbrk(char const *str, char const *group);

查找group中任意一个字符在str中出现的第一个位置。

查找一个子串

char *strstr(char const *s1, char const *s2);
查找一个字符串前缀
size_t strspn(char const *str, char const *group);
size_t strcspn(char const *str, char const *group);

group中包含一个或多个字符。strspn返回的是起始部分匹配group中任意字符的字符数。知道不匹配为止。

strcspn正好和strspn相反。

查找标记

char *strtok(char *str, char const *sep);

第一个参数指定一个字符串,它包含一个或者多个sep字符串中一个或多个分隔符分隔的标记。strtok找到str的下一个标记,将其用’\0’结尾,然后返回指向一个指向这个标记的指针。

错误信息

char *strerror(int error_number);

字符分类

函数 如果它的参数符合下列条件就返回真
iscntrl 任何控制字符
isspace 空白字符:’ ‘,’\f’,’\n’,’\r’,’\t’,’\v’
isdigit 十进制数字0~9
isxdigit 十六进制数字,不分大小写
islower 小写字母a~z
isupper 大写字母A~Z
isalpha 字母
isalnum 字母或数字
ispunct 标点符号(任何不属于数字和字母的图形字符,可打印符号)
isgraph 任何图形字符
isprint 任何可打印字符,包括图形字符和可打印字符

字符转换

大小写转换

int tolower(int ch);
int toupper(int ch);

内存操作

void *memcpy(void *dst, void const *src, size_t length);
void *memmove(void *dst, void const *src, size_t length);
void *memcmp(void const *a, void const *b, size_t length);
void *memchr(void const *a, int ch, size_t length);
void *memset(void *a, int ch, size_t length);

你可能感兴趣的:(C和指针详解------字符解析)