[IT认证]厦门理工学院11级C语言 第4章_数组.ppt

[IT认证]厦门理工学院11级C语言 第4章_数组.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[IT认证]厦门理工学院11级C语言 第4章_数组

* 4.3 字符数组与字符串 在 C语言中,并没有设置专门的字符串数据类型,通常用一个一维字符数组来存放一个字符串,而二维字符数组则可以用来存放多个字符串,也称为字符串数组。 4.3.1 字符数组与字符串的关系 字符串是由若干有效字符构成且以字符‘\0’作为结束标志的一个字符序列,其中可以包括字母、数字、专用字符和转义字符等,并且用一对双引号括起来,如“China”。‘\0’作为字符串结束标志,在这里可不显式写出,C编译程序自动在其尾部添加字符‘\0’。该串的实际长度为5,但在内存中却占6个存储单元(此时包括‘\0’)。 当一维字符数组中的最后一个元素存放空字符‘\0’时,该字符数组就是字符串,作为字符串的字符数组的初始化及引用等方法又可以不同于前面介绍的数值型数组,特别地此时的字符数组可以利用C编译系统中提供的字符串库函数进行操作,比较方便。 * 4.3 字符数组与字符串 4.3.2 字符数组的定义 形式与前面介绍的数值数组相同,只不过数组的基类型为字符类型。 例如: char c[10]; 定义c为一维字符数组,包含10个元素,可以存放10个字符型的数据,也可以存放实际长度最大为9个字符的字符串。因为串结束符‘\0’需占用一个位置,所以为了用一个字符数组来存储实际长度为N的字符串,要求字符数组的大小至少为N+1。 由于字符型和整型通用,因此上面的定义也可改为: int c[l0]; 但这时每个数组元素占2个字节的内存单元,浪费空间。 类似地可以定义二维或多维字符数组。 例如: char c[5][10]; 定义了一个5行10列的二维字符数组,可以用来存放5个字符串,每个字符串实际长度最大为9个字符。 * 4.3 字符数组与字符串 4.3.3 字符数组的初始化 对字符数组初始化,通常可采用下面两种方式: 1、对字符数组的各个元素分别赋值。 例如: char c[12]={H,e,l,l,o, ,W,o,r,l,d,!}; 把12个字符分别赋给c[0]到c[11] 12个元素。 说明: (1)如果“{ }”中提供的初值个数(即字符个数)大于数组长度,则作语法错误处理。 (2)如果“{ }”中提供的初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即‘\0’),这时字符数组就变成了字符串。 如下面定义中c[12]的值为‘\0’: char c[13]={H,e,l,l,o, ,W,o,r,l,d,!}; (3)如果“{ }”中提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。如: char c[ ]={H,e,l,l,o, ,W,o,r,l,d,!}; 数组c的长度自动定为12。用这种方式可以不必去数字符的个数,尤其在赋初值的字符个数较多时,比较方便。 * 4.3 字符数组与字符串 2、用字符串常量来给字符数组初始化。 例如: char c[ ]={Hello World!}; 也可以省略花括弧,直接写成: char c[ ]= Hello World!; 不是用单个字符作为初值,而用一个字符串(注意字符串的两端是用双引号而不是单引号括起来的)作为初值。上面的初始化与下面的初始化等价。 char c[13]={H,e,l,l,o, ,W,o,r,l,d,!,\0}; 而不与下面的等价: char c[ ]={H,e,l,l,o, ,W,o,r,l,d,!}; 前者的长度为13,后者的长度为12。 说

文档评论(0)

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

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

1亿VIP精品文档

相关文档