资源简介 (共18张PPT)字符数组、字符串复 习 导 入一维数组的定义格式数据类型 数组名[常量表达式];二维数组的定义格式数据类型 数组名[常量表达式1][常量表达式2];教 学 目 标掌握字符数组的定义。掌握字符数组的引用与初始化方法1能够正确使用字符数组解决实际问题。2培养学生独立思考、解决问题的能力。3知识能力情感工作任务我们在日常生活中有许多密码问题,如银行卡、门禁卡、电子密码等,为了密码的保密,通常是为改密码进行加密变化存储。这个任务就是从键盘上输入一串密码,并进行加密变化,规则是将其中的小写字母转换成大写字母并输出。思路指导输入:一串字符加密变化:将其中的小写字母转换成大写字母输出:输出加密后的字符。相关知识(一)字符数组的定义1.一维字符数组:格式:类型说明符 数组名[常量表达式];例如:char str[10];定义str为一维字符数组,该数组包含10个元素,最多可以存放10个字符型数据。相关知识(一)字符数组的定义2.二维字符数组:格式:类型说明符 数组名[常量表达式1][常量表达式2];例如:char a[3][20];定义a为二维字符数组,该数组有3行,每行20列,该数组最多可以存放60个字符型数据。相关知识(二)字符数组初始化字符数组的初始化方式与其它类型数组的初始化方式类似。1.逐个元素赋初值char ch[5]={ H , e , l , l , o };例 char ch[5]={‘H’,’e’,’l’,’l’,’o’};ch[0]Hello逐个字符赋值ch[1]ch[2]ch[3]ch[4]相关知识如果初值的个数多于数组元素的个数,则按语法错误处理。比如: char ch[5]={ H , e , l , l , o , ! };如果初值的个数少于数组元素的个数,则C编译系统自动将未赋初值的元素定为空字符(即ASCII码为0的字符: \0 )。比如: char ch[7]={ H , e , l , l , o };有问题!例 char ch[7]={‘H’,’e’,’l’,’l’,’o’};ch[0]Helloch[1]ch[2]ch[3]ch[4]ch[5]ch[6]\0\0相关知识如果省略数组的长度,则系统会自动根据初值的个数来确定数组的长度。例如: char c[]={ H , o , w , , a , r , e , , y , o , u , }; 数组c的长度自动设定为12。当定义的数组为字符型时,输入单个字符的格式符应该为“%c”。例如: char s[10];int i=0;for (i=0;i<10;i++) //循环输入字符数组元素scanf ("%c", &s[i]);相关知识2.用字符串常量给字符数组赋初值字符串常量是用双引号括起来的一串字符。在C语言中,将字符串作为字符数组来处理,即用一个 一维数组来存放一个字符串。C语言系统在处理字符串时,一般会在其末尾自动添加一个 \0 作为结束符。相关知识例 如:char c[]={"china"};char c[]="china";以字符串方式赋值时,必须保证数组元素个数>=字符个数+1(字符串后面自动加上一个’\0’)char c[6]="china";char c[5]="china"; 相关知识字符串可以整体输入或输出,即用格式符“%s”控制字符串的输入与输出。(1)用"%s"格式符读入字符串时,scanf函数中的地址项是数组名,不要在数组名前加取地址符号 & ,因为数组名本身就是地址。(2)用"%s"格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素。(3)以scanf ("%s", 数组名);形式读入字符串时,遇空格或回车都表示字符串结束,系统只是将第一个空格或回车前的字符置于数组中。char a[6];scanf(“%s”,a); printf(“%s”,a);相关知识字符常量和字符串的区别:(1)字符常量是用单引号引起来的一个字符为字符常量。如:’a’字符常量;(2)字符串是用双引号引起来的一个或一串字符。如:"hello"字符串;(3)字符常量使用简单变量存储和处理,而字符串在C语言中,只能使用字符数组存储和处理。如:变量:x=’a’; 数组:char ch[6]="china";任务实施#include void main ( ){char s[10];int i=0;printf("请输入字符回车结束:\n");for (i=0;i<10;i++) //循环输入字符数组元素然后加密{scanf ("%c", &s[i]);if (s[i]=='\n') break;else if (s[i]>= 'a'&&s[i]<= 'z') s[i]-=32;}s[i]='\0'; //为字符数组加结束标志变为字符串printf("加密后:\n");for (i=0;s[i]!='\0';i++) //输出加密字符串printf ("%c", s[i]);printf ("\n");}任务实施课 堂 总 结谢谢大家! 展开更多...... 收起↑ 资源预览