C语言标准库函数学习字符处理

字符处理

字符分类函数

Ps:返回值int非零数为真。

#include<ctype.h>

函数声明

解释

Int isalnum(int c);

是否为数字或字母【1..a..A..

Int isalpha(int c);

是否为字母【a..A..

Int iscntrl(int c);

是否为控制字符【ASCII 0-31



Int islower(int c);

是否为小写字母【你懂得】

Int issupper(int c);

是否为大写字母【你也懂得】



Int isdigit(int c);

是否为10个十进制数字之一【1..

Int isxdigit(int c);

是否为16个十六进制数字之一【1--f



Int isprint(int c);

是否为打印字符【除控制字符】

Int isgraph(int c);

是否为图形字符【除控制字符&空格】

Int ispunct(int c);

是否为标点字符【除控制字符&空格&数字&字母】



Int isspace(int c);

是否为单词分隔符={’ ’ , ’ ’}

Int isblank(int c);

是否为空白字符={制表 ’,回车 ’,换行 ’,垂直制表v’,换页f’,空格’ ’}


转换函数

#include<ctype.h>

函数声明

返回值

解释

Int tolower(int c);

小写字母

转换成小写,非字母返回原值

Int toupper(int c);

大写字母

转换成大写,非字母返回原值



字符串处理

字符串追加

#include<string.h>

Char* strcat(char* dest, const char* src);

src追加在dest

Char* strncat(char* dest, conse char* src, size_t n);

将指定的srcn个字符追加到dest后,若n>strlen(src),则复制到null为止。若追加字符不含null,则在最后追加一个。

Ps:确保dest中有足够的空间来放置追加字符,包括null也要占用一个字节。(

Ps2:介绍最后有这么一句:如果两个参数字符串在内存中重叠,这些函数的行为是未定义的。


字符串比较函数

#include<string.h>

Int strcmp(const char* s1,conse char* s2);

按照字典顺序比较两组字符

Int strncmp(const char* s1,conse char* s2,size_t n);

同上,指定长度

Ps:返回值为0说明两字符串相同,正负也代表不同含义。

Ps2:关于字符串不等的情况,举个栗子:

1str1=”abc”, str2=”abd”; 比较结果是str1 < str2,返回一个小于0的数。

2str1=”abc”, str2=”abcd”; 比较结果是str1 < str2,返回一个小于0的数。

3)请结合字典和以上两个栗子理解“按字典顺序比较”。


字符串复制函数

#include<string.h>

Char* strcpy(char* dest, const char* src);

复制src的完整内容到dest,即使空间不足。

Char* strncpy(char* dest, conse char* src, size_t n);

将指定的srcn个字符复制到dest后,若n>strlen(src),则复制到null为止,并用null将数量补全到n即使复制字符不含null,也不会追加。

Ps:确保dest中有足够的空间来放置追加字符,包括null也要占用一个字节。(


字符串长度统计函数

#include<string.h>

Size_t strlen(const char* s);

返回字符串长度,以到null为准


字符串搜索函数

#include<string.h>

Char* strchr(const char* s, int c);

返回第一个出现该字符处的指针

Char* strrchr(const char*s, int c);

返回最后一个出现该字符处的指针

Ps:理论上返回一个非const的指针,但实际是和传入的参数相同的。


#include<string.h>

Size_t strspn(const char* s, const char* set);

返回set中所含字符的第一次出现,若没有出现则返回串s的长度,若set为空则返回0

Size_t strcspn(const char* s, const char* set);

返回set中所含字符的第一次出现的位置。

Char* strpbrk(const char* s, const char* set):

strcspn相似,但返回的是该处开始的字符串指针


#inlcude<string.h>

Char* strstr(const char* src, const char* sub);

搜索子串subsrc中的第一次出现,并返回串指针



#include<string.h>

Char *strtok(char* str, const char* set);

非常特别的一个函数,下面会用一个例子来解释用途。请自己体会。


原文地址:https://www.cnblogs.com/fistao/p/3223119.html