字符(分类/转换)函数,字符串函数和相应的模拟实现

C语言中有许多关于字符,字符串和内存操作的库函数,例如:isspace(),tolower(),strcpy(),memcpy()等等。接下来进行一一说明。

一.字符函数

1.字符分类函数:

字符分类函数包含在<ctype.h>这个头文件中,如果满足条件就返回非零的数,如果不满足则返回零。

字符分类函数的使用非常相似,举islower()的例子,其他函数与其相同:​​​​​​​

2.字符转换函数:tolower和toupper

tolower()会将大写转成小写,若已是小写则不转换。toupper()会将小写转成大写,若已是大写则不转换。如下例:

二.字符串函数

1.strcpy和strncpy  这两个函数是用来将源中的字符串拷贝到目的地中的,并返回目的地起始地址,strncpy在拷贝个数少于源中字符串长度时,不会在拷贝内容后加'\0',当长度长于源中字符串长度时,多余位会用'\0'补充。就不再做代码演示,具体说明参考后面的链接:  strcpy - C++ Reference (cplusplus.com)     strncpy - C++ Reference (cplusplus.com),现在模拟实现上面的两个函数:

两函数相比后者会更安全,可以在一定程度上避免越界。

2.strcat和strncat这两函数是将源中的字符串连接到目的地字符串上,并返回目的地起始地址。strncat在连接个数少于源中字符串长度时会在链接内容后补'\0',在连接个数多于源中字符串长度时多余位不会补零。要与strncpy区分开。 就不再做代码演示,具体操作看后面的链接:strcat - C++ Reference (cplusplus.com)    strncat - C++ Reference (cplusplus.com),现在模拟实现上面两个函数:

3.strcmp和strncmp这两个函数是比较相应字符ASCII值的大小,大于返回大于零的数,小于返回小于零的数,等于则返回零。具体操作如下:strcmp - C++ Reference (cplusplus.com)    strncmp - C++ Reference (cplusplus.com)模拟实现一下:

4.strstr是从一个字符串中查找另一个字符串,找得到则返回第一次出现的地址,找不到则返回NULLstrstr - C++ Reference (cplusplus.com)下面列出一种未用算法的模拟实现方式:(暴力查找)

5.strtok是将带有分隔符的字符串分为字符段,该函数在使用时需要给他传字符串起始地址和分隔符组成的字符串起始地址,它会将分隔符换为'\0'并记住其位置并返回字符段起始地址,因记住了'\0'的位置,所以下次再调用时第一个参数传NULL即可。​​​​​​​strtok - C++ Reference (cplusplus.com)如下例:

6.strerror对该函数传错误码,其返回错误信息的起始地址,该函数使用较少,理解如何使用即可strerror - C++ Reference (cplusplus.com)与其相关的函数有一个perror,其可直接打印错误信息,有兴趣可以通过连接了解一下。perror - C++ Reference (cplusplus.com)

今天要讲的东西就讲完了,有什么不足欢迎大家指出。

  • 33
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值