C语言字符串详解:从基础到常用函数
1. C语言字符串基础在C语言中字符串实际上是使用空字符\0结尾的一维字符数组。空字符Null character又称结束符缩写NUL是一个数值为0的控制字符。\0是转义字符告诉编译器这不是字符0而是空字符。1.1 字符串的声明与初始化下面的声明和初始化创建了一个RUNOOB字符串。由于在数组末尾存储了空字符\0所以字符数组的大小比单词RUNOOB的字符数多一个char site[7] {R, U, N, O, O, B, \0};依据数组初始化规则可以简写为char site[] RUNOOB;实际上C编译器会在初始化数组时自动把\0放在字符串的末尾所以不需要手动添加。1.2 字符串的内存表示以下是C/C中字符串的内存表示// 内存布局示例 // char str[] Hello; // 内存: | H | e | l | l | o | \0 | // 索引: 0 1 2 3 4 51.3 字符串输出示例让我们尝试输出上面的字符串#include stdio.h int main() { char site[7] {R, U, N, O, O, B, \0}; printf(菜鸟教程: %s\n, site); return 0; }当上面的代码被编译和执行时会产生下列结果菜鸟教程: RUNOOB2. C语言常用字符串函数C语言标准库提供了大量操作字符串的函数这些函数定义在string.h头文件中。2.1 常用字符串函数列表序号函数功能描述1strcpy(s1, s2)复制字符串s2到字符串s12strcat(s1, s2)连接字符串s2到字符串s1的末尾3strlen(s1)返回字符串s1的长度不包括\04strcmp(s1, s2)比较字符串s1和s2相同返回0s1s2返回负数s1s2返回正数5strchr(s1, ch)返回指向字符串s1中字符ch第一次出现位置的指针6strstr(s1, s2)返回指向字符串s1中字符串s2第一次出现位置的指针2.2 字符串函数使用示例#include stdio.h #include string.h int main() { char str1[14] runoob; char str2[14] google; char str3[14]; int len; /* 复制str1到str3 */ strcpy(str3, str1); printf(strcpy(str3, str1): %s\n, str3); /* 连接str1和str2 */ strcat(str1, str2); printf(strcat(str1, str2): %s\n, str1); /* 连接后str1的总长度 */ len strlen(str1); printf(strlen(str1): %d\n, len); return 0; }当上面的代码被编译和执行时会产生下列结果strcpy(str3, str1): runoob strcat(str1, str2): runoobgoogle strlen(str1): 123. 注意事项与最佳实践3.1 缓冲区溢出问题使用字符串函数时要注意缓冲区大小避免溢出// 危险示例 char dest[10] Hello; char src[20] World, this is too long!; strcat(dest, src); // 缓冲区溢出 // 安全示例使用strncat strncat(dest, src, sizeof(dest) - strlen(dest) - 1);3.2 字符串长度计算strlen()函数计算的是字符串的实际长度不包括结尾的\0char str[] Hello; int length strlen(str); // 返回5不是63.3 字符串比较strcmp()比较的是字符串内容不是地址char str1[] Hello; char str2[] Hello; char *str3 Hello; printf(%d\n, strcmp(str1, str2)); // 0相同 printf(%d\n, str1 str2); // 0地址不同 printf(%d\n, strcmp(str1, str3)); // 0内容相同4. 总结C语言中的字符串是以空字符\0结尾的字符数组。理解字符串的内存表示和常用字符串函数是C语言编程的基础。在实际开发中要注意缓冲区安全合理使用字符串函数并理解字符串与字符数组的区别。您可以在C标准库中找到更多字符串相关的函数如strncpy、strncat、strncmp等这些函数提供了更安全的缓冲区操作方式。

相关新闻

基于Modbus TCP与PoE供电的嵌入式网络继电器模块设计与实现

基于Modbus TCP与PoE供电的嵌入式网络继电器模块设计与实现

1. 项目概述:一个工业边缘的“智能开关”最近在做一个挺有意思的小项目,客户现场有几台分散的老式设备需要远程控制启停,但现场布线是个大麻烦,拉220V强电不仅成本高,还有安全隐患。正好手头有个需求:通过现…

2026/8/1 18:59:26 阅读更多 →
跳出影片本身:《群星闪耀时》暴露的国产科幻行业深层顽疾

跳出影片本身:《群星闪耀时》暴露的国产科幻行业深层顽疾

此前我们拆解的所有剧情bug、世界观破绽、未来线割裂、叙事失衡问题,都只是表层结果。真正致命、且普遍存在于国产科幻行业的,是影片之外的创作思维惯性、工业体系短板、审美代差、创作取舍病态、观众分层矛盾。本片不是个例,是当前国产科幻的…

2026/8/1 18:59:26 阅读更多 →
二维线性代数库2linear的核心功能与应用实践

二维线性代数库2linear的核心功能与应用实践

1. 项目概述:2linear是什么?2linear是一个数学工具库的名称,从字面可以拆解为"2"和"linear"两部分。这里的"2"代表二维空间,而"linear"直指线性代数运算。这个命名方式常见于数学计算领域…

2026/8/1 18:59:25 阅读更多 →

最新新闻

D2DX终极指南:让暗黑破坏神2在现代PC上焕然新生的深度解析

D2DX终极指南:让暗黑破坏神2在现代PC上焕然新生的深度解析

D2DX终极指南:让暗黑破坏神2在现代PC上焕然新生的深度解析 【免费下载链接】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/8/1 23:31:29 阅读更多 →
GD32W51x_F5HC手册更新解析:Wi-Fi 6 MCU外设增强与开发实战

GD32W51x_F5HC手册更新解析:Wi-Fi 6 MCU外设增强与开发实战

1. 从手册更新看芯片迭代:为什么你需要关注GD32W51x_F5HC最近在整理手头的项目资料,翻到了兆易创新(GigaDevice)的GD32W51x系列Wi-Fi MCU的用户手册。作为一个经常和无线物联网设备打交道的开发者,我发现这份手册的更新…

2026/8/1 23:31:29 阅读更多 →
深度探索FFUF:现代Web安全测试的瑞士军刀

深度探索FFUF:现代Web安全测试的瑞士军刀

深度探索FFUF:现代Web安全测试的瑞士军刀 【免费下载链接】ffuf Fast web fuzzer written in Go 项目地址: https://gitcode.com/gh_mirrors/ff/ffuf 你是否曾面临这样的困境:在渗透测试中,传统的目录爆破工具要么速度缓慢&#xff0c…

2026/8/1 23:31:29 阅读更多 →
5种矩阵分解图解:线性代数可视化学习的终极指南

5种矩阵分解图解:线性代数可视化学习的终极指南

5种矩阵分解图解:线性代数可视化学习的终极指南 【免费下载链接】The-Art-of-Linear-Algebra Graphic notes on Gilbert Strangs "Linear Algebra for Everyone" 项目地址: https://gitcode.com/gh_mirrors/th/The-Art-of-Linear-Algebra 你是否曾…

2026/8/1 23:31:29 阅读更多 →
3步构建多平台音乐数据聚合方案:LX Music API Server技术实战

3步构建多平台音乐数据聚合方案:LX Music API Server技术实战

3步构建多平台音乐数据聚合方案:LX Music API Server技术实战 【免费下载链接】lx-music-api-server-python 适用于 LX Music 的解析接口服务器的 Python 实现 项目地址: https://gitcode.com/gh_mirrors/lx/lx-music-api-server-python 在音乐流媒体服务日益…

2026/8/1 23:31:29 阅读更多 →
如何使用Gata Auto Bot自动完成Gata DVA任务?新手入门完整指南

如何使用Gata Auto Bot自动完成Gata DVA任务?新手入门完整指南

如何使用Gata Auto Bot自动完成Gata DVA任务?新手入门完整指南 【免费下载链接】Gata-Auto-Bot Automation bot for Gata Data Verification Agent (DVA) tasks. This bot helps automate the process of completing DVA tasks on the Gata platform. 项目地址: …

2026/8/1 23:30:28 阅读更多 →

日新闻

免费解锁百度网盘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/8/1 13:02:46 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

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

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

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

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

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

2026/8/1 10:33:33 阅读更多 →

月新闻

免费解锁百度网盘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 阅读更多 →