C语言基础:字符数组
一维字符数组应用 存储字符串。1.定义类型 数组名[整形常量]; 整形常量 数组的容量表示可以储存多少个字符 类型 char c语言规定字符串必须使用\0 作为结束标准。 如果你要在数组中储存一个 hello , hello\0 共计6个字符空间 char string[100]; ​ ​2.访问数组名[整形表达式]str[0] a;char c str[0];使用下标 运算符 [] ,整形表达式 ,常量变量表达式-》 整形 。下标从 0 开始下标的范围 0 - 有效长度 (从下标0 开始 到字符串\0 之前的有效字符长度);字符数组 也是数组不能整体操作 。除非调用函数。char str[10]; str hello; // error 不能整体赋值。// 访问 写入 // 下标从0 开始, 长度 5 ,从下标0 开始 到字符串\0 之前的有效字符长度 str[0] h; // str[0] char str[1] e; str[2] l; str[3] l; str[4] o; str[5] \0; // \0 不可以省略 ​ // 读出 数组元素 putchar(str[0]); // h printf(%c\n,str[1]);//e char c str[4]; // 字符数组 不可整体操作 //str world; puts(str); // 字符串整体输出 被输出的字符串一定是以\0 结尾 printf(str is %s\n,str);3.初始化// 全部初始化 char str1[6]{h,e,l,l,o,\0}; // a 字符常量 1字符 1byte char str2[6]{hello}; // hello 字符串常量默认是有\0 char str3[6]hello; // 用的多 ​ // 局部初始化 ,剩下没有给处值的都是\0 char str4[10]{h,e,o,\0}; // \0 建议手动加上。 char str5[10]{hel}; char str6[10]hello; // 常用 char str7[10]{0}; // 常用空串 ​ 0; // 数字0 \0 ; //字符串结束标志 0 ‘\0’ 在内存中存储的 都是 0 0; //字符0 ascii 48 0x30 ​ char str8[]{h,e,l};// 不是字符串字符数组没有\0 char str9[]{hello}; char str10[]hello; char str11[]{0}; // 不要写成这种遍历char str[10]{0}; printf(sizeof str[10] is %lu\n,sizeof(str)); printf(sizeof str[0] is %lu\n,sizeof(str[0])); int i 0 ; int len 0 ; // 遍历的输入 for(i0;i10 - 1 ;i) // \0 { scanf(%c,str[i]); if(# str[i]) { break; } len; ​ } str[len]\0; //遍历的输出 for(i0;ilen;i ) // { putchar(str[i]); } ​字符串相关的常用函数函数名功能备注strlen获得字符串有效字符长度 size_t strlen(const char *s);strcpy字符串的复制从一个数组到另一个数组 char *strcpy(char *dest, const char *src);strcat字符串的拼接 char *strcat(char *dest, const char *src);strcmp字符串的比较比较字符串的内容是否一致 int strcmp(const char *s1, const char *s2);strlen char str[100]{0}; // char [] char * printf(input string); gets(str); //int len strlen(str); // 有效字符的个数 // int len 0; ​ while(1) { if(\0!str[len]) { len; } else { break; } } ​ 注意 strlen 和sizeof 的区别 1. strlen 函数 需要外部支持 c语言标准库 sizeof 关键字 不需要额外的支持 直接就能用 2. 相对字符数组 strlen 有效字符的个数 单位字节 sizeof 获得数组在内存中的大小 单位字节strcpy int main() { //char str1[100]hello; char str1[100]{0}; printf(input string:); gets(str1); char str2[100]{0}; ​ // 不能整体操作 // str2 str1; // 把str1 的内容 复制到 str2 //strcpy(str2,str1); int i 0 ; while(1) { str2[i] str1[i]; if(\0 str1[i]) { break; } i; } puts(str2); return 0; } 注意 目标数组的大小要能容纳的下源数组的的内容。否则 数组越界。后续行为不确定(可能可以继续运行也可能程序崩溃但从逻辑上已经错误)。 ​strcat ​ int main() { ​ char str1[100]hello;//dst char str2[100],world;//src //strcat(str1,str2); // int i 0 ; int j 0 ; while(1) // 找到 str1的结束的地方 { if(\0!str1[i]) { i; } else { break; } } ​ while(1)// 开始拼接 { str1[i] str2[j]; if(\0 str2[j]) { break; } i; j; } printf(strcat str1:%s\n,str1); ​ } ​strcmp 比较两个字符串的内容是否一致 ​ int main() { char str1[100]hello; char str2[100]aaaaa; char str3[100]hello; ​ // 不能写成这样这个不是比较 str1,str2 的字符串内容 /* if(str1 str2) { }*/ #if 0 // 系统函数的使用 int ret 0; ret strcmp(str1,str2); printf(str1 cmp str2 ret %d\n,ret); ​ ret strcmp(str1,str3); printf(str1 cmp str3 ret %d\n,ret); #endif ​ int i 0 ; int ret 0 ; while(1) { ret str1[i] - str3[i]; if(0ret str1[i]!\0) { i; } else { break; } } printf(ret is %d\n,ret); ​ } ​ ​二维字符数组应用存储多个字符串。二维数组 可以被称为 数组的数组。 数组的元素又是一个数组的结构。语法定义数据类型 数组名[行数][列数] 一维数 二维数 行数列数整型常量char str[3][100] ;访问, 通过下标运算符 [], 从0 开始表示第一个元素。 不要越界char str[3][100] ; 最后一个元素的下标位置 str[2][99] ​ str[0] ,表示第一个字符数组 数组名 str[0][0], 表示第一个字符数组里的第一个字符元素存储 特性单一性连续性有序初始化char str1[3][50]{hello,ok,how}; char str2[3][50]{{hello},{ok},{how}}; char str3[3][50]{0} ; // 常用 char str4[3][50]{{0}}; char str5[][50]{hello,ok,123}; //一维大小可以省略二维不能省 //char str6[3][]{hello,ok,123}; ​字符串 逆序排序//逆序 for(i0;isize/2;i) { strcpy(t,str[i]); strcpy(str[i],str[size-1-i]); strcpy(str[size-1-i],t); } ​ //排序 sort int j 0 ; for(jsize-1;j0;j--) { for(i0;ij;i) { if(strcmp(str[i],str[i1])0) { strcpy(t,str[i]); strcpy(str[i],str[i1]); strcpy(str[i1],t); } } } ​

相关新闻

GEO优化哪个机构靠谱

GEO优化哪个机构靠谱

在选择 GEO 优化机构时,以下几个方面可以帮助你判断其是否靠谱:机构的背景和资质成立时间:成立时间较长的机构通常在行业内积累了更多的经验和资源。例如合肥拓路人信息科技有限公司,2016 年 4 月成立,十年的时间里专注…

2026/10/17 15:15:48 阅读更多 →
练习实验之----NAT

练习实验之----NAT

本实验包含源NAT、NAT Server、双向NAT方式实验拓扑需求1、client1(移动用户)访问web-server通过Fw的GE1/0/1接口访问 2、client3(电信用户)访问web-server通过Fw的GE1/0/2接口访问 3、内网用户即可以通过域名访问web-server,也可以通过私网IP访问 4、web-server设备…

2026/9/24 14:56:16 阅读更多 →
Java内存溢出全解析:从JVM内存模型到实战排查与优化

Java内存溢出全解析:从JVM内存模型到实战排查与优化

1. 项目概述:从“内存溢出”告警到问题根因定位如果你写过Java程序,大概率在某个深夜被控制台突然蹦出的OutOfMemoryError或者StackOverflowError搞得头皮发麻。这不仅仅是新手才会遇到的麻烦,随着系统复杂度提升、数据量激增,即便…

2026/10/16 16:34:08 阅读更多 →

最新新闻

智慧农业物联网综述怎么讲透:四层模型、传感器选型与通信链路

智慧农业物联网综述怎么讲透:四层模型、传感器选型与通信链路

简介:一份PPT综述资源面向物联网与智慧农业领域的初学者、行业从业者及高校师生,旨在系统阐述智慧农业的发展背景、技术依托与典型应用,适合用于课程汇报、专题分享或项目前期调研。压缩包仅含1个pptx文件,大小1.4MB,幻…

2026/10/17 21:45:49 阅读更多 →
LabVIEW医疗设备自动化测试系统实战:监护仪200+项合规验证

LabVIEW医疗设备自动化测试系统实战:监护仪200+项合规验证

简介:本资源是一篇面向医疗电子工程师与LabVIEW开发者的专业技术论文,聚焦于解决多参数病人监护仪在高压氧舱等特殊临床场景下的自动化校准与功能验证难题。全文基于NI LabVIEW图形化平台构建完整测试系统,覆盖ECG心电(符合ANSI/A…

2026/10/17 21:45:49 阅读更多 →
win-acme v2.2.9.1701:Windows 下全自动部署 Let‘s Encrypt SSL 证书

win-acme v2.2.9.1701:Windows 下全自动部署 Let‘s Encrypt SSL 证书

简介:win-acme.v2.2.9.1701.x64.pluggable.zip 是一款面向Windows系统管理员与Web运维人员的免费SSL证书自动化管理工具包,专为解决Lets Encrypt证书在IIS、nginx等服务上的快速申请、安装与续订难题而设计,尤其适用于中小型网站、测试环境及…

2026/10/17 21:45:49 阅读更多 →
Blender中文手册:从安装配置到建模渲染的完整避坑指南

Blender中文手册:从安装配置到建模渲染的完整避坑指南

简介:Blender是一款免费且功能强大的3D建模与渲染工具,但对初学者而言并不友好。这份中文教程手册正是为从零起步的用户编写,也适合有一定基础者查漏补缺。内容从框架逻辑和界面操作讲起,逐步延伸到建模、材质贴图、动画制作、3D渲…

2026/10/17 21:45:49 阅读更多 →
降AI率工具实测:六款去AI味改写软件横评与选型参考

降AI率工具实测:六款去AI味改写软件横评与选型参考

很多写作者应该都有过这种经历:一篇稿子改了好几轮,内容没问题、逻辑也通顺,结果扔进检测工具里一查,“疑似AI生成”的百分比高得吓人。尤其是用各类大模型辅助写完初稿再去微调的情况,机器味太重、句式太规整&#xf…

2026/10/17 21:45:49 阅读更多 →
Python 把 .h5 文件转成 CSV:TaoToken 辅助排查转换报错与字段映射

Python 把 .h5 文件转成 CSV:TaoToken 辅助排查转换报错与字段映射

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

2026/10/17 21:44:48 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →