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; }

相关新闻

电子开关电路设计:三极管与MOS管选型、驱动与实战详解

电子开关电路设计:三极管与MOS管选型、驱动与实战详解

1. 项目概述:从“开关”这个基础需求说起在电子电路设计里,用半导体器件当“开关”来控制一个负载的通断,可以说是最基础、最频繁遇到的需求之一。无论是点亮一个LED,驱动一个继电器,还是控制一个电机,本质…

2026/10/15 11:38:04 阅读更多 →
如何实现TikTok Shop批量抓取采集自动化?C++底层指纹伪装,抹除自动化特征

如何实现TikTok Shop批量抓取采集自动化?C++底层指纹伪装,抹除自动化特征

如何实现TikTok Shop批量抓取采集自动化?C底层指纹伪装,抹除自动化特征 搞店群运营这行,TikTok Shop的批量抓取采集,是店群运营中最耗人力也最容易出错的环节。 采集竞品数据是店群运营的命脉。但各大平台的反爬系统越来越强&am…

2026/10/15 22:21:02 阅读更多 →
如何实现TEMU多店防关联管理自动化?单机管理200+店铺零关联的底层架构

如何实现TEMU多店防关联管理自动化?单机管理200+店铺零关联的底层架构

如何实现TEMU多店防关联管理自动化?单机管理200店铺零关联的底层架构 干店群想赚钱,核心就两个字——效率。TEMU的多店防关联管理,是店群运营中最耗人力也最容易出错的环节。 做店群的老板都知道,最怕的就是底层IP和硬件指纹穿帮…

2026/10/15 22:21:02 阅读更多 →

最新新闻

Matplotlib图表美化:Spines与坐标轴设置全攻略

Matplotlib图表美化:Spines与坐标轴设置全攻略

做数据可视化这几年,我越来越觉得,一张图好不好看,关键不是配色多花哨、特效多炫技,而是那些最容易被忽略的“基础件”处理得干不干净。Matplotlib作为Python生态里最常用的绘图库,功能确实强大,但默认出图…

2026/10/16 0:13:12 阅读更多 →
Delphi 老兵用 TMS WEB Core 写 Web:环境搭建、组件模型与前后端通信实战

Delphi 老兵用 TMS WEB Core 写 Web:环境搭建、组件模型与前后端通信实战

简介:这份PDF教程面向希望用Delphi切入Web前端开发的初学者与进阶开发者,围绕TMS WEB Core框架讲解如何以Delphi或Lazarus快速构建网站、Web应用及跨Windows、Mac、iOS、Android、Linux的App。内容从Delphi/Object Pascal的历史与现状讲起,对…

2026/10/16 0:13:12 阅读更多 →
Matlab电场仿真入门:线电荷离散化与可视化三部曲

Matlab电场仿真入门:线电荷离散化与可视化三部曲

简介:本资源是一份面向电子信息、物理电子及电磁场相关专业本科生的Matlab仿真实验报告,聚焦线电荷电场与电位分布的数值建模与可视化。通过库仑定律、电场强度定义及势函数积分原理,结合Matlab矩阵运算、网格生成(meshgrid&#…

2026/10/16 0:13:12 阅读更多 →
京东2020首页高仿:CSS布局、滚动动效与性能优化实战

京东2020首页高仿:CSS布局、滚动动效与性能优化实战

1. 项目概述:这不是“抄界面”,而是一次前端布局与动效的系统性复盘“高仿京东2020版首页布局及刷新效果”——这个标题乍看像学生作业,实则藏着前端工程师日常攻坚中最硬核的三重关卡:结构语义化落地能力、响应式断点控制精度、以…

2026/10/16 0:13:12 阅读更多 →
SAS数据步行列变换:宽表转长表与混合类型处理实战

SAS数据步行列变换:宽表转长表与混合类型处理实战

1. 项目概述:为什么“行列变换”是SAS数据步里最常被低估的硬功夫?在某高校统计实验室带学生做课程设计时,我见过太多人把SAS当成“高级Excel”来用——导入数据、跑个proc means、画张直方图,就以为掌握了。直到某次模拟项目X中&…

2026/10/16 0:13:12 阅读更多 →
多端口隔离聊天室:用TCP端口实现天然通信域划分

多端口隔离聊天室:用TCP端口实现天然通信域划分

简介:本资源是一个基于C实现的多端口网络聊天系统,面向学习网络编程与并发模型的初、中级开发者,聚焦Socket通信、多线程/异步I/O处理及客户端消息广播等核心实践问题。项目通过服务器监听多个端口,支持多个客户端同时接入并实时互…

2026/10/16 0:12:11 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →