news 2026/7/15 16:00:58

C语言进阶3(字符数数组2头文件)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言进阶3(字符数数组2头文件)

昨天我们初步的学习了字符数组,今天我们将进一步深入学习,首先我们来了解一下今天的学习目标:

  1. 了解什么是头文件
  2. 掌握ctype.h头文件部分但字符处理函数
  3. 掌握string.h头文件中的部分字符串处理函数
  4. 字符数组补充内容
  • 头文件

后缀名是.h

已经写好了一些功能放在.h中,可以直接用

例如#include "文件名.h"

  • ctype.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赋值给a1,a1的值被覆盖

字符串不能直接用“ = ”赋值,所以需要借助strcpy()

3、strcat() 字符串连接

小括号里有两个内容

例:strcat( a1 ,a2 ); 把a2拼接在a1后面,a1就变成a1+a2

4、Strcmp() 字符串比较

小括号里有两个内容

结果是整数——两个内容相等是0,第一个大于第二个是大于1,小于是-1

例:strcmp( a , b )0; 比较a和b大小

  • 字符数组的计算求值

与一维数组求值相似,我就不一一讲解,我会把归纳放在下面各位可以自行参考:

字符串 1、输出 一个字符串char a[100];用%c输出 int i , n=strlen(a); for(i=0; i<n; i++) { printf("%c" , a[i]); } 一个字符串char a[100];用%s输出 printf("%s" , a); 多个字符串char a[100][100];用%c输出 for(i=0; i<n; i++) { for(j=0; j<strlen(a[i]); j++) { printf("%c" , a[i][j]); } printf(" "); } 多个字符串char a[100][100];用%s输出 for(i=0; i<n; i++) { printf("%s " , a[i]); } 1、求和 和 平均值 //假定一个字符数组 a[] (以下都是!!!) 数字字符求和 int i , n=strlen(a) , sum=0; for(i=0; i<n; i++) { if(a[i]>='0' && a[i]<='9') { sum = sum + (a[i]-48); count++; } } printf("和是%d 平均值是%.2f" , sum , (float)sum/count); 2、统计个数 统计大写 小写 数字 其他条件字符的个数 int count1=0 , count2=0 , count3=0 , count4=0 ; 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(i=0; i<n; i++) { if(a[i]>='A' && a[i]<='Z') { a[i] = a[i] + 32; } else { a[i] = a[i] - 32; } } 奇数变偶数 012 >> 123 890>>901 【0到8加1 9直接变成0】 for(i=0; i<n; 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(i=0; i<n; 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 k=0; for(i=0; i<n; i++) { if(a[i]>='A' && a[i]<='Z') { b[k] = a[i]; k++; } } 非空格迁移 / 删除空格 char b[100] = ""; int k=0; for(i=0; i<n; i++) { if(a[i]!=' ') { b[k] = a[i]; k++; } } 删除给定的字符ch,例如morning 删除o 变成 mrning char b[100] = ""; int k=0; for(i=0; i<n; i++) { if(a[i]!='o') { b[k] = a[i]; k++; } } 6、查找 单字符查找【常量或变量】 for(i=0; i<n; i++) { if(条件) //查找给定的字符变量x是否存在 a[i] == x { count++; } } if(count==0) { printf("失败"); } else { printf("出现%d次" , count); } 相邻字符查找 查找is这个单词是否存在与字符串a中 //n为字符串长度 for(i=0; i<n; i++) { if(a[i]=='i' && a[i+1]=='s') { count++; } } if(count==0) { printf("失败"); } else { printf("出现%d次" , count); } 字符串查找 【在二维数组中char a[100][100]中进行查找】 for(i=0; i<n; i++) { if( strcmp(a[i] , (所需查找的字符串))==0 ) { count++; } }

到这里我们就完成了我们今天的学习,我依旧会将思维导图放在底部给大家理解学习,谢谢!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 16:00:43

三步解锁WeMod专业版:零成本享受完整游戏修改体验

三步解锁WeMod专业版&#xff1a;零成本享受完整游戏修改体验 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为WeMod专业版的高昂订阅费用而烦…

作者头像 李华
网站建设 2026/7/15 15:59:45

鸣潮自动化工具终极指南:如何快速实现后台智能辅助

鸣潮自动化工具终极指南&#xff1a;如何快速实现后台智能辅助 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 你是否厌倦了在《鸣…

作者头像 李华
网站建设 2026/7/15 15:59:11

STM32 AFIO时钟配置详解与应用场景

1. AFIO时钟的本质与作用 AFIO&#xff08;Alternate Function I/O&#xff09;是STM32微控制器中一个关键的外设功能模块&#xff0c;它负责管理GPIO引脚的功能重映射和外部中断线配置。这个模块的时钟控制常常让开发者感到困惑&#xff0c;因为它的开启条件并不像其他外设那样…

作者头像 李华
网站建设 2026/7/15 15:59:11

3步精通:AB Download Manager下载加速的完整指南与资源管理技巧

3步精通&#xff1a;AB Download Manager下载加速的完整指南与资源管理技巧 【免费下载链接】ab-download-manager A Download Manager that speeds up your downloads 项目地址: https://gitcode.com/GitHub_Trending/ab/ab-download-manager 在当今数字时代&#xff0…

作者头像 李华
网站建设 2026/7/15 15:59:00

Wan-Dancer-14B故障排除手册:常见问题与解决方案大全

Wan-Dancer-14B故障排除手册&#xff1a;常见问题与解决方案大全 【免费下载链接】Wan-Dancer-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan-Dancer-14B Wan-Dancer-14B是一个强大的音乐到舞蹈视频生成AI模型&#xff0c;能够根据音乐生成分钟级别的连…

作者头像 李华