C语言-字符函数、字符串函数
目录字符函数字符分类函数字符转换函数字符串函数strcpy函数strcat函数strcmp函数长度受限制函数strstr函数strtok函数strerror函数perror函数字符函数字符函数包含在ctype.h头文件中可以找到这类函数。字符分类函数判断一个字符是否属于某一类字符若属于返回非0数若不属于返回0.字符分类函数有常用的判断字符大小写函数在代码中的使用如下#includestdio.h int main() { int a islower(A);//返回0 printf(%d\n, a); int b isupper(A);//返回非零数 printf(%d\n, b); return 0; }字符转换函数用于对字符类型的转换大部分字符分类函数都有对应的字符转换函数例如转换为大写字符的函数为toupper()字符转换函数不会对原字符进行改变会创建一个新的字符在代码中的的使用如下#includestdio.h int main() { char str[] Hello world; int i 0; while (str[i] ! \0) { if (islower(str[i])) { str[i] toupper(str[i]);//将小写字母转换为大写字母 } i; } printf(%s, str); return 0; }字符串函数字符串函数包含在头文件string.h中使用时需要包含头文件。strcpy函数用于对字符串的拷贝将一个字符串的内容拷贝给另一个字符串将“\0”以及之前的字符都拷贝过去形如char* strcpy(char* destination,const char* source);第一个参数是拷贝的目的地第二个参数是需要拷贝的源内容其返回值是目标内存空间的。在代码中的使用如下#includestdio.h #includestring.h int main() { char str[] abcde; char str1[] 777; char* p strcpy(str, str1); printf(%s\n, str); printf(%s\n, p);//调用函数返回值来打印字符串 return 0; }strcat函数字符串追加函数用于将一个字符串追加到另一个字符串后面其形式和strcpy函数基本一致“\0”也会追加目标字符串的空间要足够大否则会有警告在代码中的使用如下int main() { char str[20] abcde; char str1[] 77777; char* p strcat(str, str1); printf(%s\n, str); printf(%s\n, p); return 0; }strcmp函数字符串比较函数用于比较两个字符串的大小会从由左至右一个字符一个字符的挨着比较直到有不同的字符比较出大小了就直接退出其函数定义int strcmp(const char* str1,const char* str2),其返回值str1 str2时返回大于0的数str1 str2时返回0str1 str2时返回小于0的数在代码中的使用如下int main() { char str[] abcde; char str1[] abcf; int a strcmp(str, str1);//比较结果strstr1,返回值为-1 printf(%d\n, a); return 0; }上述三个函数为长度不受限制函数接下来的三个函数为长度受限制的函数长度受限制函数strncpystrncatstrncmp其功能与前面讲述的三个函数一样只是多了限位功能例如strncpy函数定义为char* strncpy(char* destination, const char* source,size_t num);(长度受限函数拷贝时不会拷贝“\0”,在拷贝数查出源字符数时会补“\0”),这三个函数在代码中的使用如下strncpyint main() { char str[] abcde; char str1[] qqq; char* a strncpy(str, str1,2); printf(%s\n, str); printf(%s\n,a) return 0; }strncatint main() { char str[20] abcde; char str1[] qqq; char* a strncat(str, str1,1);//在“abcde”后面加上一个“q” printf(%s\n, str); printf(%s\n, a); return 0; }strncmpint main() { char str[20] abcde; char str1[] abfys; int a strncmp(str, str1,2);//比较两个字符串前两字符strstr1返回值0 int b strncmp(str, str1, 3);//比较两个字符串前三字符strstr1返回值小于0 printf(%d\n, a); printf(%d\n, b); return 0; }strstr函数查找子字符串函数查找的时第一个出现的子字符串其返回值也是第一个出现的子字符串的首地址查不到时返回NULL.在代码中的使用如下int main() { char str[20] abcde; char str1[] cd; char* p strstr(str, str1);//在str中查找str1 if (p NULL) { printf(没有找到\n); } else { printf(找到了\n); printf(%s\n, p);//从找到子字符串的首地址处开始打印字符串这里输出cde } return 0; }strtok函数分割字符串函数函数定义char* strtok(char* str,const char* delim);第一个参数是字符串第二个人参数是分割符返回值成功分割时返回分割字符串的首地址分割完成后返回NULL首次调用时传入待分割字符串和分割符后续调用时传入NULL和相同分割符继续分割当函数返回NULL时表示分割完成。PS该函数会直接修改源字符串数据因此使用时最好备份一份用备份的子符串进行分割当两个及以上分割符挨着一起时会当作一个分割符处理第一次调用函数时不能传入NULL在代码中的使用如下int main() { char str[20] abc.ags%slks.asw; char str1[] .%; for (char* p strtok(str, str1);p ! NULL;p strtok(NULL, str1))//配合for循环使用 { printf(%s\n, p); } return 0; }strerror函数函数定义char* strerror (int errnum);可以通过errnum表示的错误码得到错误信息并返回这个错误信息的首字符地址在程序运行时会自动创建全局变量errno,用于存放错误信息码使用时需要包含头文件errno.h,在代码中的使用如下#includestdio.h #includestring.h #includeerrno.h int main() { int i 0; for (i 0;i 10;i) { printf(%s\n, strerror(errno)); } return 0; }perror函数用于打印程序错误信息函数定义为void perror(const char* str);函数的参数为自定义字符串运行时会先打印自定义的字符串再打印程序错误信息相当于printf()strerror()的功能在代码中的使用如下#includestdio.h #includestring.h int main() { perror(错误信息为); return 0; }

相关新闻

云服务性能下降事件分析:高可用架构与可用区疏散实践

云服务性能下降事件分析:高可用架构与可用区疏散实践

10 月 22 日星期一,某海外云服务商发生了一次服务故障。由于该故障导致多个热门网站宕机数小时,事件引发了广泛关注。某海外流媒体服务提供方也受到了一定影响,但对终端用户造成的实际影响较小。 从高可用架构、故障隔离和可用区疏散的角度来…

2026/8/1 6:36:26阅读更多 →
ETL、ELT、CDC区别详解,2026数据集成模式选型指南与落地实战

ETL、ELT、CDC区别详解,2026数据集成模式选型指南与落地实战

一、一句话权威定义 ETL(Extract-Transform-Load)是先抽取数据、在中间层清洗转换、再加载到目标的数据集成模式,适用于大批量离线处理; ELT(Extract-Load-Transform)是先抽取原始数据直接加载到目标、利…

2026/8/1 6:36:26阅读更多 →
学嵌入式和C语言编程 | 学习日记Day10:函数、函数的调用,值传递、递归、一维整型数组做函数参数

学嵌入式和C语言编程 | 学习日记Day10:函数、函数的调用,值传递、递归、一维整型数组做函数参数

前言今天学习 C 语言函数,函数是实现代码模块化最重要的工具。使用函数可以降低程序耦合度,减少重复代码,提高代码复用能力。在嵌入式项目开发中,我们会把传感器读取、外设驱动、数据处理全部封装成函数,方便调用与维护…

2026/8/1 6:34:25阅读更多 →
黑苹果网络驱动终极指南:从零开始实现完美Wi-Fi与蓝牙连接

黑苹果网络驱动终极指南:从零开始实现完美Wi-Fi与蓝牙连接

黑苹果网络驱动终极指南:从零开始实现完美Wi-Fi与蓝牙连接 【免费下载链接】Hackintosh Hackintosh long-term maintenance model EFI and installation tutorial 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintosh 你是否在黑苹果系统中遇到过Wi-Fi图…

2026/8/1 17:31:25阅读更多 →
从理想模型到工程实战:运放电路设计的核心挑战与解决方案

从理想模型到工程实战:运放电路设计的核心挑战与解决方案

1. 项目概述:从理想模型到现实挑战刚接触运算放大器那会儿,总觉得它是个“理想”的玩意儿:开环增益无穷大、输入阻抗无穷大、输出阻抗为零……照着教科书上的同相放大、反相放大这些经典电路图,搭个电路,算个增益&…

2026/8/1 17:31:25阅读更多 →
算法优化中的半迭代探索:平衡创新与稳定性的实践指南

算法优化中的半迭代探索:平衡创新与稳定性的实践指南

1. 项目概述:什么是exp半迭代探索在算法优化和实验设计领域,"半迭代探索"是一种平衡开发效率与系统稳定性的实用策略。我第一次接触这个概念是在优化推荐系统AB测试流程时,当时面临着一个典型困境:全量上线新算法风险太…

2026/8/1 17:31:25阅读更多 →
LMU赛道数据分析:从伊莫拉1:44.353圈速优化模拟赛车驾驶技术

LMU赛道数据分析:从伊莫拉1:44.353圈速优化模拟赛车驾驶技术

这次我们来看一个赛车模拟领域的专业工具——LMU(Le Mans Ultimate)赛道数据分析项目。标题中的"伊莫拉|RCF|1:44.353"指的是在伊莫拉赛道上驾驶RCF赛车跑出的单圈成绩1分44秒353。这个成绩在模拟赛车圈属于相当不错的水平,特别是考…

2026/8/1 17:31:25阅读更多 →
ESP32-S3-Touch-LCD-5开发板:从硬件拆解到LVGL界面开发全攻略

ESP32-S3-Touch-LCD-5开发板:从硬件拆解到LVGL界面开发全攻略

1. 项目缘起:为什么是ESP32-S3-Touch-LCD-5?如果你最近在捣鼓物联网或者嵌入式开发,大概率会听到一个名字:ESP32-S3。这颗芯片现在火得不行,几乎成了DIY智能设备和交互原型的新宠。而我今天要聊的,就是围绕…

2026/8/1 17:31:25阅读更多 →
工业通信RS232转RS485/422转换器:硬件设计、原理与工程实践全解析

工业通信RS232转RS485/422转换器:硬件设计、原理与工程实践全解析

1. 项目概述:从点到面的工业通信桥梁在工业自动化、楼宇自控或者一些老旧的工控设备现场,你肯定不止一次遇到过这样的场景:一台只有九针D型串口(也就是我们常说的RS232)的工控电脑或PLC,需要去连接几十米甚…

2026/8/1 17:29:24阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/31 20:44:05阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/31 20:44:05阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →