字符函数和字符串函数讲解

本文介绍了C语言中常用的字符分类函数,如判断字符类型,以及字符串处理函数如strlen、strcpy、strcat、strcmp、strncat、strncmp、strstr和strtok的使用方法和模拟实现过程。
摘要由CSDN通过智能技术生成

本文章由本人根据自己理解创作,如有不对,请多指正。

字符分类函数

在平常的题目中,我们可能会碰到一些需要我们把某个字符串中的小写字母全部改成大写字母的题目,这时候我们就可以用到一些字符分类中的函数,但是他们的使用都需要包含头文件<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 valueindicates
<0the first character that does not match has a lower value in ptr1 than in ptr2
0the contents of both strings are equal
>0the 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;

我们来使用一下

感谢大家!

  • 43
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZENG zhi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值