字符函数和字符串函数

一丶字符函数

1.字符分类函数

       C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。
这些函数的使⽤都需要包含⼀个头⽂件是   <ctype.h>。

2.字符转换函数

      int tolower(int c)  将任何大写字母转化为小写字母,因为“  to  lower ”,往更低,所以就大转小。同样 int toupper(int c)是将小写转大写,参数虽然形式是int ,但char固然可以。使用时也要包含 ctype.h头文件

二丶字符串函数

1.strlen函数   头文件 <string.h>

     strlen函数是计算字符串长度的函数,遇到  "\0"就会停止计数,所以不会把 "\0"计算进去。

2.strcpy,复制字符串

       char* strcpy(char * destination, const char * source ),我们仔细观察这个函数的参数(不看参数名),第一个是char * 类型,第二个是const char * ,由此可以看出是将第二个参数复制给第一个参数,在复制过程中,遇到"\0"就会停止,但会把"\0"复制过去。

3.strcat,追加字符串

    char * (char * des, const char * sor),还是可以看到函数参数类型,很明显strcat函数是将第二个字符串追加到第一个字符串后面。使用时需要注意目标空间大小。

4.strcmp,字符串比较

int strcmp(const char * str1,const char* str2),比较str1 和 str2 返回一个整型数。

> 第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字
> 第⼀个字符串等于第⼆个字符串,则返回0
> 第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字

字符串一一比较,例如arr1 和 arr2,首先比较arr1[0]  和 arr2[0],发现两个字符相等,于是传进函数的指针就向后移一位,比较下去,直到开始比较字符" d  " 和 " e ",由于 " d " 小于 " e " ,此时函数内部的比较也就停止了,所以返回了 -1 。

三丶更细致的字符串函数

1.strncpy,还是复制函数

      char * strncpy(char * dest,const char * sor ,size_t num),这个函数和strcpy相比多了一个size_t num 参数,这就是复制的长度,当然在 num 小于 sor 的长度的时,不会复制 " \0 ",所以不要让num 小于 你的 sor 的长度,并且该函数并不适用于 dest 和 sor 内存重叠的字符串,仔细一想,如果我们要把紫色复制给蓝色,会变成" a b c d e c d e c d e c " ,因为原有的" f g h " 已经便变成了" c d e " 。

2.strncat,同上

       char * strncat(char * dest ,const char * sor ,size_t num),同样多了size_t num 类型的参数,这里还是追加的长度,同样要注意目标空间大小。图二就向我们传达了危险,我刚好将它的大小设置成12,没有" \0 "的位置,程序就崩溃了。

3.strncmp

       int strncmp( const char * str1,const char * str2,size_t num),str1 和 str2 进行比较,相同指针后移,提前比较出结果就返回一个大于或小于0的数,最多比较 num 个字符,都相等就返回0。

4.strstr,找两个字符串相同的部分

 char * strstr(const char * str1,const char * str2)

 char * strstr(         char * str1,const char *str2)

        函数会返回str1中与str2相同的子字符串的首元素的地址,通过调试也可以看见 指针ch 指向的是 str[6] 的地址。

5.strtok,分割字符串

char *strtok(char * str,const char * seg)

       其中第一个参数是我们要切割的字符串,第二个参数是切割的分隔符。strtok会找到str中的下一个标记,并用  \0 结尾,返回指向这个标记的指针。第一个参数不为NULL,strtok会找到第一个标记,保存它在字符串中的位置,第一个参数为NULL,会从同一个字符串中找下一个标记。不存在标记就返回NULL。

6.strerror,返回参数错误信息

       strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来。
在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码,⼀般是放在 errno.h 这个头⽂件中说明的,C语⾔程序启动的时候就会使⽤⼀个全⾯的变量errno来记录程序的当前错误码,只不过程序启动的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会讲对应的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是有对应的错误信息的。strerror函数就可以将错误对应的错误信息字符串的地址返回。
不理解也没关系。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值