C语言 您所在的位置:网站首页 库函数的功能 C语言

C语言

2024-02-11 18:28| 来源: 网络整理| 查看: 265

文章目录 系列文章目录前言一、C语言相关字符串库函数一览表二、strlen函数三、strcpy函数四、strcat函数五、strcmp函数六、strncpy函数七、strncat函数八、strncmp函数九、strstr函数十、strtok函数十一、strerror函数十二、memcpy函数十三、memmove函数十四、memcmp函数十五、memset函数 前言

C语言的库函数,是我们经常在编写程序所用到的函数,我们可以借用库函数去实现各种各样的功能,在本篇文章,我们介绍的是C语言中字符串和字符的相关库函数,以及他们的模拟实现,通过模拟实现我们可以深入了解到库函数的工作原理,以便今后更好的使用,下面开始我们的库函数讲解!!!

一、C语言相关字符串库函数一览表 求字符串长度strlen长度不受限制的字符串函数strcpy   strcat   strcmp长度受限制的字符串函数strncpy  strncat  strncmp字符串查找strstr  strtok错误信息报告strerror内存操作函数memcpy  memmove  memset  memcmp 二、strlen函数(求字符串长度) 1.所需头文件

2.参数类型

我们这里看到这里需要的参数类型是char*所以我们传进来的参数需要是字符串的地址,并且我们可以看到这里的指针变量前加了const的修饰,这样就可以保证传进来的字符串不被修改,因为我们求字符串的长度是不需要对字符串进行修改的,加以const修饰保证程序更加的安全。

3.返回值类型

我们看到图片上面的返回值类型为size_t类型,我们知道size_t类型为无符号整型,我们也易于理解,毕竟求出一个字符串的长度肯定是一个正数,所以这里的返回值类型为一个无符号整型

这里我引入一个例子:

#include #include int main() { char* str1 = "abc"; char* str2 = "abcedf"; if (strlen(str1) - strlen(str2) > 0) { printf("hehe\n"); } else { printf("haha\n"); } return 0; }

 我们可以看到,字符串str1的长度明显小于字符串str2的长度,所以相减后应该0的数值,证明字符串str1比字符串str2要大,我们看str1和str2的前三个字符串相等,从四个字符开始str1是‘d’,而str2是‘\0’,我们知道字符d的ASSIC码值大于字符0的ASSIC码值,只要有一组字符串存在大小的差异,就停止比较返回数值,所以我们可以判断出来字符串str1是大于str2的

相等的情况:(两个字符串一样)

小于的情况 :(返回小于0的数值)

5.模拟实现strcmp函数

 逐条语句解析:

①~②.定义两个字符串

③.将两个字符串的地址传进我们自己编写的my_strcmp函数内,定义一个整型变量ret去接收返回 的数值

④.模拟strcmp函数的参数类型和返回值类型的编写方法

⑤.判断传入函数内的两个字符串地址是否有效

⑥~⑨.从两个字符串的首元素开始比较,先判断字符串str1是不是空如果是空直接就返回0,如果两个字符相等,两个字符串首地址进行++操作后移继续比较,比到最后一个字符串如果还是相等返回最后两个字符对应ASSIC码值相减后的结果,因为两个字符串相等所以结果就是 0 。如果在比较过程中就发现了两组字符存在大小差异,即结束判断,返回两个字符对应ASSIC相减的结果,>0就是str1大于str2,0/=0/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有