C语言进阶3(字符数数组2头文件)
📅 2026/7/15 16:01:06
👁️ 次浏览
昨天我们初步的学习了字符数组今天我们将进一步深入学习首先我们来了解一下今天的学习目标了解什么是头文件掌握ctype.h头文件部分但字符处理函数掌握string.h头文件中的部分字符串处理函数字符数组补充内容头文件后缀名是.h已经写好了一些功能放在.h中可以直接用例如#include 文件名.hctype.h头文件中的部分单字符处理功能单字符islower( ) 判断是否小写字母isupper( ) 判断是否大写字母isdigit( ) 判断是否是十进制数组‘ 0 ’—‘ 9 ’isspace( ) 判断是否是空格空白字符蓝C和绿C都可以用isblank( ) 判断是否是空格空白字符蓝C可以用绿C不可以用isalpha( ) 判断是否是大小写字母isxdigit( ) 判断是否是16禁止数‘ 0 ’—‘ 9 ’ ‘ a ’—‘ f ’ ‘A’—‘F’tolower( ) 转换成小写字母toupper( ) 转换成大写字母string.h头文件中的部分字符串处理功能字符串1、strlen 求字符串的长度字符串长度有多少个字符字符串长度就是多少小括号里只有一个内容结果是整数%d输出例char a[10]”asdf”; strlen(a)4;2、strcpy 字符串赋值小括号里有两个内容例strcpy a1 , a2 把a2赋值给a1a1的值被覆盖字符串不能直接用“ ”赋值所以需要借助strcpy3、strcat 字符串连接小括号里有两个内容例strcat a1 a2 把a2拼接在a1后面a1就变成a1a24、Strcmp 字符串比较小括号里有两个内容结果是整数——两个内容相等是0第一个大于第二个是大于1小于是-1例strcmp( a , b )0; 比较a和b大小字符数组的计算求值与一维数组求值相似我就不一一讲解我会把归纳放在下面各位可以自行参考字符串 1、输出 一个字符串char a[100];用%c输出 int i , nstrlen(a); for(i0; in; i) { printf(%c , a[i]); } 一个字符串char a[100];用%s输出 printf(%s , a); 多个字符串char a[100][100];用%c输出 for(i0; in; i) { for(j0; jstrlen(a[i]); j) { printf(%c , a[i][j]); } printf( ); } 多个字符串char a[100][100];用%s输出 for(i0; in; i) { printf(%s , a[i]); } 1、求和 和 平均值 //假定一个字符数组 a[] 以下都是 数字字符求和 int i , nstrlen(a) , sum0; for(i0; in; i) { if(a[i]0 a[i]9) { sum sum (a[i]-48); count; } } printf(和是%d 平均值是%.2f , sum , (float)sum/count); 2、统计个数 统计大写 小写 数字 其他条件字符的个数 int count10 , count20 , count30 , count40 ; for() { if(条件1) { count1; } else if(条件2) { count2; } else if(条件3) { count3; } else { count4; } } 3、最值 最长字符串 【长度 strlen】 //假定三个数组 int a[]; int b[]; int c[] 简单粗暴直接比较法 if(strlen(a)strlen(b) strlen(a)strlen(c)) printf(最长串是%s 长度是%d , a , strlen(a)); 赋值比较法 char max[100]; strcpy(max , a); //max a; if(strlen(max) strlen(b)) strcpy(max , b); if(strlen(max) strlen(c)) strcpy(max , c); printf(最长串是%s 长度是%s , max , strlen(max)); 最大字符串 【大小 strcmp】 简单粗暴直接比较法 if(strcmp(a , b)0 strcmp(a , c)0) printf(最大串是%s , a); 赋值比较法 char max[100]; //2、其余的人依次打擂主 if( strcmp(max , b)0 ) strcpy(max , b); if( strcmp(max , c)0 ) strcpy(max , c); printf(最大串是%s , max); 4、元素变换【不要写多个单if语句会影响结果写if……else或者if……else if】 大小写变换 for(i0; in; i) { if(a[i]A a[i]Z) { a[i] a[i] 32; } else { a[i] a[i] - 32; } } 奇数变偶数 012 123 890901 【0到8加1 9直接变成0】 for(i0; in; i) { if(a[i]0 a[i]8) { a[i] a[i] 1; } else if(a[i] 9) { a[i] 0; } } 大写字母循环变换 A变C B变D……X变Z Y变A Z变B for(i0; in; i) { if(a[i]A a[i]X) { a[i] a[i] 2; } else if(a[i] Y) { a[i] A; } else if(a[i] Z) { a[i] B; } } 5、数组迁移 大写迁移 char b[100] ; int k0; for(i0; in; i) { if(a[i]A a[i]Z) { b[k] a[i]; k; } } 非空格迁移 / 删除空格 char b[100] ; int k0; for(i0; in; i) { if(a[i]! ) { b[k] a[i]; k; } } 删除给定的字符ch例如morning 删除o 变成 mrning char b[100] ; int k0; for(i0; in; i) { if(a[i]!o) { b[k] a[i]; k; } } 6、查找 单字符查找【常量或变量】 for(i0; in; i) { if(条件) //查找给定的字符变量x是否存在 a[i] x { count; } } if(count0) { printf(失败); } else { printf(出现%d次 , count); } 相邻字符查找 查找is这个单词是否存在与字符串a中 //n为字符串长度 for(i0; in; i) { if(a[i]i a[i1]s) { count; } } if(count0) { printf(失败); } else { printf(出现%d次 , count); } 字符串查找 【在二维数组中char a[100][100]中进行查找】 for(i0; in; i) { if( strcmp(a[i] , 所需查找的字符串)0 ) { count; } }到这里我们就完成了我们今天的学习我依旧会将思维导图放在底部给大家理解学习谢谢
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
📅 2026/7/15 16:01:06
Netgear路由器Telnet启用终极指南:解锁隐藏管理功能 【免费下载链接】netgear_telnet Netgear Enable Telnet (New Crypto) 项目地址: https://gitcode.com/gh_mirrors/ne/netgear_telnet
Netgear Telnet启用工具是一款专为网络管理员和技术爱好者设计的开源…
📅 2026/7/15 16:01:05
Notepad 实时预览插件:3分钟开启高效Markdown写作新体验 【免费下载链接】MarkdownViewerPlusPlus A Notepad Plugin to view a Markdown file rendered on-the-fly 项目地址: https://gitcode.com/gh_mirrors/ma/MarkdownViewerPlusPlus
还在为Notepad无法实…
📅 2026/7/15 16:00:04
1. GitOps:从代码仓库到自动化部署的革命记得第一次接触GitOps这个概念时,我正在为一个客户调试Kubernetes集群的部署问题。当时手动修改YAML文件导致环境不一致,团队花了三天才找到配置差异。这正是GitOps要解决的核心痛点——用Git仓库作为…
📅 2026/7/15 17:03:45
1. 项目概述:深入理解高性能LDO的三大核心机制在给高速ADC、精密运放或者FPGA内核供电时,我们这些做硬件设计的,最头疼的往往不是电源转换效率,而是电源的“干净”和“稳当”。开关电源(DCDC)效率是高&…
📅 2026/7/15 17:03:45
使用Carte构建RESTful API文档:从入门到精通的完整指南 【免费下载链接】carte Simple Jekyll-based documentation site for APIs. 项目地址: https://gitcode.com/gh_mirrors/ca/carte
Carte是一个基于Jekyll的简单API文档网站,专为RESTful API…
📅 2026/7/15 17:03:45
重新定义Dify工作流架构:从单体编排到分布式智能系统的范式转移 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awes…
📅 2026/7/15 17:03:45
51 单片机、ESP32、STM32 都是常见的嵌入式开发芯片,但它们的定位、性能、架构和开发方式都有很大差异。一、核心区别一览表对比项51 单片机STM32ESP32品牌/架构Intel MCS-51 架构(8 位)ARM Cortex-M 系列(32 位)Tensi…
📅 2026/7/15 17:03:45
APK安装器:在Windows上直接安装安卓应用的终极解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer
你是否曾想过在Windows电脑上直接运行手机应用&…
📅 2026/7/15 17:02:43
1. COM线程模型基础与CoInitializeEx核心作用在Windows平台开发中,组件对象模型(COM)的线程处理机制一直是开发者必须掌握的底层知识。作为COM初始化的门户函数,CoInitializeEx不仅决定了对象在何种线程环境下运行,更影响着整个组件的并发性能…
📅 2026/7/15 0:00:17
1. 为什么M芯片Mac用户需要降级到Monterey? 去年刚拿到M2芯片的MacBook Pro时,我第一时间升级到了Ventura系统。结果第三天就遇到了微信闪退、Final Cut Pro渲染卡顿的问题。后来在开发者论坛发现,不少专业软件对Ventura的适配都存在问题。这…
📅 2026/7/15 0:00:17
1. 背景与核心概念在AI大模型快速发展的今天,许多开发者和研究者都面临一个现实问题:如何在有限的硬件预算下实现高效的本地大模型部署。特别是对于个人开发者和小型团队来说,购买最新的高端显卡成本高昂,而利用现有的或二手硬件资…
📅 2026/7/15 0:00:17
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/14 6:35:02
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/14 12:06:52
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/15 14:09:20
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/14 15:11:56
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/15 2:24:18
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/14 15:11:56