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

发布时间:2026/9/11 23:42:56
C语言进阶3(字符数数组2头文件) 昨天我们初步的学习了字符数组今天我们将进一步深入学习首先我们来了解一下今天的学习目标了解什么是头文件掌握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; } }到这里我们就完成了我们今天的学习我依旧会将思维导图放在底部给大家理解学习谢谢

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询