当前位置: 首页 > article >正文

字符函数和字符串函数(函数的模拟实现请前往gitte获取源代码)(文章结尾有链接)

1:字符分类函数

C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。

这些函数的使用要包含对应的头文件是ctype.h

b0600064c9644ea1afa4b2c03c963cbc.jpg

 2:字符转换函数

C语言提供了2个字符转换函数

tolower和toupper直接实现字符大小写的转换。

3:strlen的模拟实现(使用已经在和前面的sizeof区别说明了)

注意点:(size_t strlen(const char * str);)

1:字符串以'\0'为结束标志,strlen会返回 除'\0'以前的字符个数

2:参数指向的字符串必须以'\0'结束

3:函数返回类型为size_t类型,无符号整型

4:strcpy的模拟实现(字符拷贝函数)

char* strcpy(char * destination, const char * source);

注意:

1:源字符串必须以'\0'结束

2:会讲源字符串中的'\0'拷贝到目标空间

3:目标空间必须足够大,以确保能存放源字符串

4:目标空间必须可修改

5:strcat的模拟实现(字符追加函数)

char* strcat(char * destination, const char * source);

注意:

1:源字符串必须以'\0'结尾

2:目标字符串中也要有'\0',否则不知道从哪里追加

3:目标空间必须足够大,能容纳源字符串的内容

4:目标空间必须可修改

6:strcmp的模拟实现(字符比较函数)

int strcmp( const char * str1,,const char * str2);

注意点:

1:返回值为int

2:返回值在不同编译器上不同

3:模拟实现我们不使用一般编译器上的1,-1,0我们使用字符ASCII码值的差作为返回值

7:strstr的使用和模拟实现

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

使用:函数返回字符串str2在字符串str1中第一次出现的位置;

字符串的比较匹配不包含\0字符,以\0作为结束标志。

8:strtok的使用(不模拟实现)

char * strtok(char * str, const char * sep);

注意:

1:sep参数指向一个字符串,定义了用做分隔符的字符集合

2:第一个参数指定一个字符串,包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记

3:strtok函数会找到str的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针。

4:strtok会改变被操作数的字符串,所以被strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。

5:strtok的第一个参数不为NULL,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置

6:strtok函数的第一个参数为NULL,函数将在同一个字符串中被保存的位置2开始,查找下一个标记

7:如果字符串中不存在更多标记,则返回NULL指针

function_true1/11_12.c · 思麟/CSDN_code - 码云 - 开源中国icon-default.png?t=O83Ahttps://gitee.com/silin-c/csdn_code/blob/master/function_true1/11_12.c


http://www.kler.cn/a/390510.html

相关文章:

  • openSUSE 环境下通过 zypper 安装软件
  • Unity3D 包体裁剪与优化详解
  • 游戏引擎学习第七天
  • ES6模块、CommonJS、AMD等不同的模块化实现。
  • Java项目实战II基于Spring Boot的药店管理系统的设计与实现(开发文档+数据库+源码)
  • 100+SCI科研绘图系列教程(R和python)
  • PyQt入门指南五十一 文档与注释规范
  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
  • c语言数据结构与算法--简单实现队列的入队和出队
  • 如何提高自动驾驶中惯性和卫星组合导航pbox的精度?
  • 钉钉扫码登录(DTFrameLogin) 用户注销后重新登录出现回调叠加的问题
  • 动态规划 之 简单多状态 dp 问题 算法专题
  • Vue — 组件化开发
  • ZYX地图瓦片转mbtiles文件(Python)
  • Postman上传图片如何处理
  • Docker-软件容器平台
  • springboot基于java无人超市管理系统,计算机毕业设计项目源码314,计算机毕设程序(LW+开题报告、中期报告、任务书等全套方案)
  • 漫谈MCU优化:从硬件设计优化到可靠性挑战
  • NVM切换本地node版本
  • Vue前端开发:gsap动画库
  • 10.桥接模式设计思想
  • 基础网络安全知识
  • 修改msyql用户密码及更新mysql密码策略
  • Redis - Hash 哈希
  • MR30分布式IO热插拔:智能时代的便捷与高效
  • uni-app小程序echarts中tooltip被遮盖