本文章由本人根据自己理解创作,如有不对,请多指正。
字符分类函数
在平常的题目中,我们可能会碰到一些需要我们把某个字符串中的小写字母全部改成大写字母的题目,这时候我们就可以用到一些字符分类中的函数,但是他们的使用都需要包含头文件<ctype.c>
函数 | 如果它的参数符合下列条件就返回真 |
iscntrl | 任何控制字符(ASCII中0~31和127是控制字符) |
isspace | 空白字符:空格‘ ’,换页'\f',换行'\n',回车'\r',制表符'\t'或者垂直制表符‘\v' |
isdigit | 十进制数字0到9 |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 字母a~z或者A~Z |
isalnum | 字母或者数字,a~z,A~Z,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
下面我给大家演示一下判断大小写字符的用法。
字符转换函数
在C语言中提供了两个字符转换函数
下面我们来看一下具体的用法
strlen函数的使用和模拟实现
strlen的使用相信大家已经熟知,如果不知道的话可以去看我之前的文章中有,我们就来模拟实现一下
当然这只是一种简单的方式,还可以通过递归的方式和指针与指针相减的形式实现。
strcpy的使用和模拟实现
strcpy是用来拷贝字符串的,具体格式如下:
char* strcpy(char* destination,const char* source)
在拷贝时,目标空间必须足够大,并且会把原字符串中的'\0'拷贝进去,下面我们先来使用
我们可以看到'\0'也被成功的拷贝进去,而且我们还看到它拷贝进去的时候直接从目标数组的第一个元素开始,下面我们来模拟实现
strcat的使用和模拟实现
strcat是追加字符串,意思是将一个字符串追加到另一个字符串的末尾,返回目的地的起始地址。
具体格式:
char * strcat ( char * destination, const char * source );
1.源字符串中必须以‘\0'结束
2.目标字符串中必须也有\0,否则不知从哪开始追加
3.目标空间必须足够大
下面我们来使用一下
那如果自己给自己追加会出现什么效果呢
追加成功!
下面我们来模拟实现
strcmp的使用和模拟
strcmp是用来比较两个字符串的大小,并不是比较长度,而是比较两个字符串中对应位置ASCII的值大小
具体格式:
int strcmp ( const char * str1, const char * str2 );
返回值
Returns an integral value indicating the relationship between the strings:
return value | indicates |
---|---|
<0 | the first character that does not match has a lower value in ptr1 than in ptr2 |
0 | the contents of both strings are equal |
>0 | the first character that does not match has a greater value in ptr1 than in ptr2 |
意思是如果str1大于str2返回一个比0大的数字,如果小于则返回一个小于0的数字,相等则返回0
我们来使用
下面我们来模拟实现strcmp
关于strncat和strncmp
这两个函数比strcat和strcmp中多了一个n字母,我就把他理解为num的意思,就是你想要追加n个字符或者比较n个字符,可以限制数量,大家可以去查查资料,自己使用并且模拟实现。
strstr的使用和模拟
strstr是在一个字符串中找另一个字符串,并返回另一字符串在这一字符串中的起始地址,如果不存在,则返回空指针。
我们先来使用
我们可以看到strstr返回的是一个字符串在另一个字符串中的起始地址。
模拟实现
strtok函数的使用
具体格式:
char * strtok ( char * str, const char * delimiters );
第一个参数指定一个字符串,它包含了0个或者多个由seq字符串中一个或者多个分隔符分割的标记,strtok函数找到str中的第一个标记,并将其用'\0'结尾,返回一个指向这个标记的指针
strtok函数的第一个参数不为NULL,函数将找到str中第一个标记,strtok函数将保存他在字符串中的位置。
strtok函数的第一个函数为NULL,函数将在同一个字符串中被保存的位置开始,查找下一个标记。
如果字符串不存在更多的标记,则返回NULL;
我们来使用一下
感谢大家!