C语言字符函数和字符串函数
1.字符分类函数2.字符转换函数3.strlen的使用和模拟实现4.strcpy的使用和模拟实现5.strcat的使用和模拟实现6.strcmp的使用和模拟实现7.strncpy函数的使用8.strncat函数的使用9.strncmp函数的使用10.strstr的使用和模拟实现11.strtok函数的使用12.strerror函数的使用在本章关于字符函数和字符串函数的内容中我们需要引入的头文件有#includestring.h用于字符串函数#includectype.h用于字符分类与转换函数。一.字符分类函数十个分类函数1.isspace(c):空白字符:空格、\n \t \r \v \f2.isdigit(c):十进制数字0~93.isxdigit(c):十六进制0-9,a-f,A-F4.islower(c):小写字母 a~z5.isupper(c):大写字母 A~Z6.isalpha(c):字母大小写7.isalnum(c):字母 数字8.ispunct(c):标点符号9.isgraph(c):可见非空格字符10.isprint(c):可打印字符含空格使用上面的函数需要声明头文件#includectype.h;使用规则1.返回值非 0 条件成立0 不成立不要直接判断12.参数隐患字符若为负数如中文、扩展 ASCII会出错规范写法函数名((unsigned char)ch)3.只判断不修改字符本身例一int main() { int r isdigit(x); //int r isdigit(8); //int n islower(8); int n islower(A); printf(%d\n, r); printf(%d\n, n); return 0; }代码运行结果例二写一个代码将字符串中的小写转换成大写字母其他字符不变int main() { char arr[] I am a Student!; int i 0; while (arr[i] ! \0) { if (islower(arr[i])) arr[i] - 32; printf(%c, arr[i]); i; } return 0; }代码运行结果二.字符转换函数1.tolower:大写字母转小写2.toupper:小写字母转大写代码块int toupper(int c);int tolower(int c);例三大写字母转小写int main() { //int r tolower(x); int r tolower(X); //printf(%c\n, r); putchar(r); return 0; }代码运行结果例四小写字母转大写int main() { int r toupper(x); printf(%c\n, r); putchar(r); return 0; }代码运行结果三.strlen的使用和模拟实现代码块size_t strlen(const char *str);功能统计参数str指向的字符串的长度。统计的是字符串中\0之前的字符的个数。参数str指针指向了要统计长度的字符串。返回值返回了str指向的字符串的长度返回的长度不会是负数所以返回类型是size_t.四.strcpy的使用和模拟实现代码块char* strcpy(char* dest,const char* src);功能字符串的拷贝拷贝到源头字符串中的\0为止。参数dest指针指向目标空间起始地址src指针指向源字符串起始地址返回值strcpy返回目标空间 dest 的起始地址。五.strcat的使用和模拟实现代码块char* strcat(char* dest,const char* src);功能字符串追加将 src 指向的字符串中所有字符都追加到 dest 指向的空间。参数dest指针目标空间起始地址src指针源字符串起始地址。返回值返回 dest 目标空间的起始地址char*。六.strcmp的使用和模拟实现代码块int strcmp(const char* str1,const char* str2);功能逐字符比较 str1 和 str2 两个字符串的 ASCII 码值直到出现不同字符或者遇到\0停止比较。参数str1待比较的第一个字符串起始地址str2待比较的第二个字符串起始地址const 修饰函数内部不会修改两个字符串。返回值0str1 str20str1 str20str1 str2七.strncpy函数的使用代码块char* strncpy(char* dest,const char* src,size_t num);功能从 src 指向字符串拷贝最多 num 个字符到 dest 指向空间。若 src 字符串长度小于 num剩余空间填充\0若 src 长度≥num仅拷贝 num 个字符不会自动追加结束符\0。参数dest指针目标空间起始地址src指针源字符串起始地址返回值返回 dest 目标空间起始地址char*。八.strncat函数的使用代码块char* strncat(char* dest,const char* src,size_t num);功能字符串追加把src指向的源字符串中的所有字符都追加到dest指向的空间中。参数dest指针目标空间起始地址src指针源字符串起始地址返回值返回 dest 目标空间的起始地址char*。九.strncmp函数的使用代码块intstrncmp(const char* str1,const char* str2,size_t num);功能字符串比较比较str1和str2指向的两个字符串的内容最多比较num字符。参数str1指针指向一个比较的字符串str2指针指向另外一个比较的字符串num最多参与比较的字符数量size_t 无符号整数返回值0str1 对应位置字符大于 str20前 num 个字符全部相等0str1 对应位置字符小于 str2十.strstr的使用和模拟实现代码块char* strstr(const char* str1,const char* str2);功能strstr函数查找str2指向的字符串在str1指向的字符串中第一次出现的位置。简而言之在一个字符串中查找子字符串。strstr的使用得包含string.h参数str1指针指向了被查找字符串str2指针指向了要查找字符串返回值如果str1指向的字符串中存在str2指向的字符串那么返回第一次出现位置的指针如果str1指向的字符串中不存在str2指向的字符串那么返回NULL十一.strtok函数的使用代码块char* strtok(char* str,const char* delim);功能分割字符串根据delim参数中指定的分隔符将输入字符串str拆分成多个子字符串。修改原始字符串strtok会直接在原始字符串中插入\0终止符替换分隔符的位置因此原始字符串会被修改。参数str第一次调用传入字符串地址后续继续分割传入 NULL表示继续分割同一个字符串。delim包含所有可能分隔符的字符串。返回值分割成功返回当前片段起始地址分割完毕返回 NULL。十二.strerror函数的使用代码块char* strerror(int errnum);功能strerror函数可以通过参数部分的errnum表示错误码得到对应的错误信息并且返回这个错误信息字符串首字符地址。strerror函数只针对标准库中的函数发生错误后设置的错误码的转换。strerror的使用需要包含string.h参数errnum表示错误码返回值函数返回通过错误码得到的错误信息字符串的首字符的地址。

相关新闻

梯度下降算法:从核心原理到工程实践,掌握机器学习优化引擎

梯度下降算法:从核心原理到工程实践,掌握机器学习优化引擎

1. 项目概述:从“盲人下山”到机器学习的核心引擎如果你刚开始接触机器学习或者深度学习,那么“梯度下降”这个名字你肯定绕不过去。它听起来有点学术,有点抽象,但说白了,它就是让机器“学会”东西的那个最核心、最基础…

2026/8/1 1:58:32 阅读更多 →
Linux系统篇23——进程(六):什么是进程间通信?一文搞懂背景与全貌

Linux系统篇23——进程(六):什么是进程间通信?一文搞懂背景与全貌

这一篇只把"进程间通信"这件事讲透:它是什么、为什么需要、有哪些方式、各自怎么选。至于每种方式的具体原理、API 和代码实战,会在后续文章中逐篇展开,敬请关注。一、从一个问题说起:进程为什么"老死不相往来&quo…

2026/8/1 1:58:32 阅读更多 →
自研原生3D图形渲染底座:镜像视界视频孪生摆脱开源依赖,实现动态实景秒级复刻 研发课题方案

自研原生3D图形渲染底座:镜像视界视频孪生摆脱开源依赖,实现动态实景秒级复刻 研发课题方案

自研原生3D图形渲染底座:镜像视界视频孪生摆脱开源依赖,实现动态实景秒级复刻 研发课题方案研发单位:镜像视界(浙江)科技有限公司核心研发负责人:耿文海(创始人、首席技术官)学术支撑…

2026/8/1 1:58:32 阅读更多 →

最新新闻

LangSmith Polly:实现LLM应用本地化可观测性的关键技术解析

LangSmith Polly:实现LLM应用本地化可观测性的关键技术解析

1. 从LangSmith的“私有化”到Polly的“无处不在”:一次关键的技术范式转移如果你在过去一年里深度参与过LLM应用开发,那么LangSmith这个名字对你来说一定不陌生。它几乎是LangChain生态中事实上的“黄金标准”调试与监控平台。然而,一个长期…

2026/8/1 4:45:34 阅读更多 →
HarmonyOS ArkTS API 24+ 实战:补齐异常闭环测试与运行截图

HarmonyOS ArkTS API 24+ 实战:补齐异常闭环测试与运行截图

前言:有按钮不等于流程已经验证 M4 异常闭环包含登记、调机、复核、模板确认和关闭多个阶段。页面可以渲染出按钮,Repository 也可以写出状态,但如果没有明确的操作步骤、预期结果和运行证据,文章很难回答一个实际问题&#xff1a…

2026/8/1 4:45:34 阅读更多 →
3分钟完成Windows系统瘦身:Win11Debloat让电脑重获新生的终极指南

3分钟完成Windows系统瘦身:Win11Debloat让电脑重获新生的终极指南

3分钟完成Windows系统瘦身:Win11Debloat让电脑重获新生的终极指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…

2026/8/1 4:45:34 阅读更多 →
告别低效写作:AI论文工具测评与最新推荐

告别低效写作:AI论文工具测评与最新推荐

生成的论文质量、低AI味、格式正确、学术适配是衡量AI论文工具的核心指标。经过实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 在各项测试中表现突出。从价格区间到语言类型,从文科到理工,这些工具全面覆盖各类学术写作需求。 一、综合实…

2026/8/1 4:45:34 阅读更多 →
数字孪生与边缘计算的结合是当前工业智能化(尤其是上位机、智慧工厂、具身智能)落地的关键技术路径

数字孪生与边缘计算的结合是当前工业智能化(尤其是上位机、智慧工厂、具身智能)落地的关键技术路径

数字孪生与边缘计算的结合是当前工业智能化(尤其是上位机、智慧工厂、具身智能)落地的关键技术路径。它通过边缘侧实时计算 + 云端全局优化,解决传统数字孪生“延时高、带宽占用大、实时性不足”的问题,实现真正意义上的低延时、高可靠、闭环可控的虚实映射。 1. 为什么需…

2026/8/1 4:45:34 阅读更多 →
GPT-SoVITS v4语音合成架构深度解析:从48K高清音质到金属音消除的技术实现

GPT-SoVITS v4语音合成架构深度解析:从48K高清音质到金属音消除的技术实现

GPT-SoVITS v4语音合成架构深度解析:从48K高清音质到金属音消除的技术实现 【免费下载链接】GPT-SoVITS 1 min voice data can also be used to train a good TTS model! (few shot voice cloning) 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS …

2026/8/1 4:44:34 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

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

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

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