[C程序设计]电子教案--Ch07--数组.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
字符数组的定义和引用 字符数组的定义方法: 一维字符数组:char 数组名[常量表达式] 二维字符数组:char 数组名[常量表达式][常量表达式] 如:char StuName[10]; char AllStuName[40][10]; 字符数组是用来存放字符型数据的数组。字符数组的每一个元素都相当于一个字符型的变量,可以保存一个字符。 字符数组元素的引用 一维字符数组(下标变量): 数组名[下标] 二维字符数组(下标变量): 数组名[下标1] [下标2] 如:StuName[0] = ‘L’; AllStuName[0][0] = ‘L’; 注意:字符数组的每个元素只能保存一个字符型的数据。 字符数组的初始化 定义同时进行初始化:将初值放在一对大括号中 如:char str[10] = {‘h’, ‘e’, ‘l’, ‘l’, ‘o’}; 如:char name[10] = {‘L’, ‘i’, ‘C’, ‘h’, ‘S’}; 逐一给元素以给定初值,给定初值用完后,其余元素赋以0初值 若定义数组时省略数组长度,则系统根据初值的个数确定数组长度 如:char name[ ] = {‘L’, ‘i’, ‘C’, ‘h’, ‘S’}; 等价于: char name[5] = {‘L’, ‘i’, ‘C’, ‘h’, ‘S’}; 定义之后赋初值。注意:只能访问单个的数组元素。 如:char name[10]; name[0]=‘L’; name[1]=‘i’; name[2]=‘C’; name[3]=‘h’; name[4]=‘S’; 注意:字符数组的每个元素只能保存一个字符型的数据。 用字符数组处理字符串 C语言没有专门的字符串变量,是用字符数组来处理的。 字符串结束标志字符:‘\0’ 对于字符串常量:系统自动加‘\0’ 对于字符数组:如果要保存字符串,必须手工加‘\0’;因 为系统根据该字符来判断字符串是否结束,而不是根据字符 数组的长度来决定的,即有可能字符数组的长度大于字符串 的长度。 注意:一个字符数组并不是一定要保存一个字符串(即并不是一定要加上字符串结束标志字符 ‘\0’)。 但是,只要加了 ‘\0’ 字符,我们就可以把字符数组按字符串的方式处理(整体的输入和输出) 用字符数组处理字符串 ? 如何将一个字符串保存在一个字符数组中 首先字符数组的长度起码比字符串长度大一 方法一:用代码在赋值时加上字符 ‘\0’; 如:char name[ 3]; name[0]=‘L’, name[1]=‘i’, name[2]= ‘\0’; 等价:char name[3]={‘L’, ‘i’}; 为什么初始化时不加‘\0’ 方法二:更常用的方式是直接用字符串常量来初始化字符数组。但是要注意:这种方法只能在定义时使用。 错误:char name[10]; name = “LiChS”; 正确:char name[ ] = “LiChS”; 正确:char password[10] = “DianLi98”; 字符数组及字符串的输入 1. 单个输入:分别输入每个元素。(不常用) char str[10]; str[0] = getchar(); scanf(“%c” , str[1]); 2. 整体输入:一次整体输入整个字符串。(常用) char name[10]; scanf(“%s” , name); /* 用 name[0] 也可 */ %c 表示要输入一个字符 %s 表示要输入一个字符串 所以此处给出指定的一个数组元素的地址 所以此处给出整个数组的首地址 字符数组及字符串的输出 1. 单个输出:在已知字符数组长度或确知保存的是字符串的情况下,利用不同循环控制方式依次处理每个数组元素。 char str[10]={‘h’, ‘e’, ‘l’, ‘l’, ‘o’ }; int i; for (i = 0; i 10; i ++) putchar(str[i]); /* printf(“%c”, str[i]); */ 用数组长度来控制循环结束显然存在一个问题:可能会输出一些位于结束标志字符 ‘\0’ 之后多余的无用字符。 ? char str[10] ={‘h’, ‘e’, ‘l’, ‘l’, ‘o’ }; int i=0; while (str[i] != ‘\0’) /* 用‘\0’ 控制循环结束 */ { printf(“%c”, str[i]); i ++; } 这种循环控制方式只能用在 确知保存的是字符串的情

文档评论(0)

jingpinwedang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档