版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C程序设计讲义数组(理论三)教学目的:1.了解字符数组的基本概念 2.掌握字符类型变量的定义与引用 3字符数组的定义与引用、常用字符串处理函数及字符处理函数教学重(难)点:字符数组的定义与引用、常用字符串处理函数及字符处理函数授课形式:理论教学条件:多媒体教学内容:复习:一维数组的使用,二维数组的使用新课:字符数组字符数组:存放字符型数据的数组。其中每个数组元素存放的值都是单个字符。字符数组分为一维字符数组和多维字符数组。一维字符数组常常存放一个字符串,二维字符数组常用于存放多个字符串,可以看作是一维字符串数组。1 字符数组的定义、初始化及引用字符数组也是数组,只是数组元素的类型为字符型。所以
2、字符数组的定义、初始化,字符数组数组元素的引用与一般的数组类似。(定义时类型说明符为char,初始化使用字符常量或相应的ASCII码值,赋值使用字符型的表达式,凡是可以用字符数据的地方也可以引用字符数组的元素)。例如:char c110,str510;char c23=r,e,d;或char c2=r,e,d;printf(“%c%c%cn”,c20,c21,c22);2 字符串与字符数组(1)字符串与字符数组字符串(字符串常量):字符串是用双引号括起来的若干有效的字符序列。C语言中,字符串可以包含字母、数字、符号、转义符。字符数组:存放字符型数据的数组。它不仅用于存放字符串,也可以存放一般的
3、、对一般读者看来毫无意义的字符序列。C语言没有提供字符串变量(存放字符串的变量),对字符串的处理常常采用字符数组实现。C语言许多字符串处理库函数既可以使用字符串,也可以使用字符数组。为了处理字符串方便,C语言规定以0(ASCII码为0的字符)作为“字符串结束标志”。如果不是处理字符串,字符数组中可以没有字符串结束标志。例如:char str1=C,H,I,N,A;str1:字符数组,占用空间5个字节CHINAchar str2=”CHINA”; 占用空间6个字节CHINA0(2)字符数组的初始化(除了一般数组的初始化方法外,增加了一些方法)(1) 以字符常量的形式对字符数组初始化。注意:这种方
4、法,系统不会自动在最后一个字符后加0。例如:char str1=C,H,I,N,A;或char str15=C,H,I,N,A;没有结束标志。如果要加结束标志,必须明确指定。char str1=C,H,I,N,A,0;初始化为0,相当于有字符串结束标志。(2) 以字符串(常量)的形式对字符数组初始化。(系统会自动在最后一个字符后加0)例如:char str1=”CHINA”;或char s16=”CHINA”;char str280=”CHINA”;或char s280=”CHINA”;(3)字符数组的输入输出(两种形式:逐个字符输入/输出,整串输入/输出)(1) 逐个字符输入/输出:采用“%
5、c”格式说明和循环,像处理数组元素一样输入输出一个字符。说明:l 格式化输入是缓冲读。必须在接受到“回车”时,scanf才开始读取数据。l 读字符数据时,空格、回车都保存进字符数组。l 如果按“回车”键时,输入的字符少于scanf循环读取的字符时,scanf继续等待用户将剩下的字符输入;如果“回车”键时,输入的字符多于scanf循环读取的字符时,scanf循环只将前面的字符读入。l 逐个读入字符结束后,不会自动在末尾加0。所以输出时,最好也使用逐个字符输出。(2) 整串输入/输出:采用“%s”格式符来实现例 charc=“china”; printf(“%s”,c);在内存中是意0结束,因此输
6、出时遇到o就停止输出。故输出结果为china注意:l 输出字符不包括0l 用s格式输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名判断: printf(“%s”,c0);l 如果数组长度大于字符串的实际长度也只输出到遇0结束。l 如果一个字符数组中包含一个以上的0则遇到一个0时输出就结束l 可以用scanf输入一个字符串,例如 scanf(”%s”,c);c是数组名他应该在输入以前被定义。l 从键盘输入字符串时,应该注意应短于已定义的字符数组的长度l 注意scanf函数中输入项是字符数组名时,不要在前面加&3字符串(字符数组)处理函数1字符串输入,输出函数()(1) 字符
7、串输入gets(str);功能:从键盘终端输入一个字符串(可包含空格),直到遇到回车符,并将字符串存放到由str指定的字符数组(或内存区域)中。参数:str是存放字符串的字符数组(或内存区域)的首地址。(2) 字符串输出puts(str);功能:从str指定的地址开始,依次将存储单元中的字符输出到显示器,直到遇到“字符串”结束标志。注意:puts将字符串最后的0转化为n并输出。2 字符串处理函数()(1) 字符串长度测量函数strlen(str1)如: strlen(”china”)(2) 字符串连接函数strcat(str1,str2)功能:将str2为首地址的字符串连接到str1字符串的后
8、面,从str1原来的0(字符串结束标志)处开始连接,将结果放在str1里面。(3) 字符串复制函数strcpy(str1,str2)功能:将str2为首地址的字符串复制到str1为首地址的字符数组中。 Char str110,str=“china”; Strcpy(str1,str2);(4) 字符串比较函数strcmp(str1,str2)功能:将str1,str2为首地址的两个字符串进行比较,比较的结果由返回值表示。当str1=str2,函数的返回值为:0;当str1str2,函数的返回值为:正整数;字符数组应用举例例:输入一行字符,统计其中有多少个单词,单词之间用空格隔开include
9、“stdio.h” void main() char string81; Int I,num=0,word=0;/*num用来统计单词个数,word用来判别是否单词的标志*/ char c; gets(string); for(i=0;(c=stringi)!=0;i+) if(c= ) word=0; else if(word=0) /*判断前面是否有空格,若有则证明有单词,num+*/ word=1; num+; printf(“there are %d words in the linen”,num);例:编写一个程序,将字符数组s2中的全部字符拷贝到字符数组S1中,不用strcpy函数
10、,拷贝时,0也要拷贝过去。0后面的字符不拷贝。 include “stdio.h” void main() char from80,to80; int i; printf(“please input string:”); scanf(“%s”,from); for(i=0;i=A)&(ch=a)&(cji=z) trani=26+96-chi+1+96; else trani=chi; i+;n=i;printf(“n original code is:”);for(i=0;in;i+) putchar(trani); 例:输入一个整数n和一个字府串,将字符串循环左移n个字符。include
11、“stdio.h”# include “string.h”void main() char str180,temp; int i,j,length; puts(“please input a intsger and a string:”); scanf(“%d%s”,&n,str1); length=strlen(str1); for(i=0;in;i+) temp=str10; for(j=0;jlength-1;j+) str1j=str1j+1; strj=temp; puts(str1); 例:由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符。程序:#include 多设置了一个数组void main() char s20,temp20,x; int i,j; gets(s); printf(“dele
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026华东师范大学附属闵行永德学校(永德路校区)编外水电工招聘1人备考题库及一套完整答案详解
- 2026年“百名博士进巴中”专项引才备考题库完整参考答案详解
- 2026年亳州市人民医院医护人员招聘考试参考题库及答案详解
- 2026年长沙市第一人民医院医护人员招聘考试参考题库及答案详解
- 2026年广州市荔湾中心医院医护人员招聘考试备考试题及答案详解
- 2026年郑州市骨科医院医护人员招聘考试参考试题及答案详解
- 2026年内蒙古包钢医院医护人员招聘考试参考题库及答案详解
- 2026年山西省永济五七五工厂职工医院医护人员招聘笔试参考题库及答案详解
- 2026钢铁冶炼行业市场供需趋势分析及产能布局评估投资战略规划研究报告
- 老年人噎食海姆立克急救家庭版
- 黑龙江省龙东地区2026年中考二模语文试题(含答案)
- 数独知识培训课件
- 股动脉穿刺并发症护理
- 2024-2025学年北京市中国人民大学附中高一(下)期末数学试卷(含答案)
- 新疆阿克苏地区阿克苏市2024-2025学年七年级下学期历史期末测试卷
- 【高一下】连云港市2024~2025学年第二学期高一语文期末调研考试含答案
- 中医经络学说与穴位保健
- 《赓续血脉》第一课《寻根之旅》第二课时课件 -2024-2025学年人教版(2024)初中美术七年级下册
- 2024年上海市初中学业水平考试生物试卷含答案
- DL∕T 5028.1-2015 电力工程制图标准 第1部分:一般规则部分
- 2024年上海市中考地理试题卷(含答案)
评论
0/150
提交评论