C程序设计 第二版 作者 荣政_ 第6章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
  如果提供的初值个数与预定的数组长度相同,在定义时可省略数组长度,系统就会自动根据初值个数确定数组长度。如:  char c[ ]={′s′,′t′,′r′,′i′,′n′,′g′};   对于二维字符数组的定义与初始化,我们不难以此为基础类推。例如:  char ch[3][2]={{′1′,′2′},{′2′,′2′},{′3′,′2′}}; 内存中形如: 6.4.2 字符串   字符串常量是用双引号括起来的字符序列。在C语言中,没有字符串变量,字符串是作为一维字符数组来处理的。   在处理字符数组时,为了测定数组中实际存放的字符个数,C语言规定了一个“字符串结束标志”,用字符′\0′代表(其ASCII码值为0,无任何操作),也就是说,一个字符串 是由有效字符,加上字符′\0′组成的。系统对字符串常量也自动加一个′\0′作为结束符。例string共有6个字符, 但在内存中占7个字节,最后一个字节存放′\0′。需要提醒读者注意字符串与字符的区别:0为一字符串,在内存中占两个字节,而′0′为字符,只占一个字节,其ASCII码值为48。   为了方便处理字符数组,C语言还允许用一个简单的字符串常量来初始化一个字符数组,而不必使用一串单个字符。如:  char c[ ]={string}; 或  char c[ ]=string;   经过上述初始化后,c数组中每个元素的初值如下: c[0]=′s′,c[1]=′t′,c[2]=′r′,c[3]=′i′,c[4]=′n′, c[5]=′g′ ,c[6]=′\0′ 应注意的是,字符串常量的最后由系统自动在末尾加上结束字符′\0′,所以c数组有7个元素。但若如上节逐个元素初始化,则要显式加′\0′,即char c[]={′s′,′t′, ′r′,′i′,′n′,′g′,′\0′}。   需要说明的是,C语言并不要求所有的字符数组的最后一个字符一定是′\0′,但为了处理上的方便,往往需要以′\0′ 作为字符串的结尾(这也是字符数组编程上不同于其它类型数组之处)。同时,C语言库函数中有关字符处理的函数,一般都要求所处理的字符串必须以′\0′结尾,否则将会出现错误。   例 6.6 检测某一给定字符串中的字符数,不包括结束符′\0′。   #include stdio.h    void main()   {    static char str[]={string};    int i=0;   while (str[i]!=′\0′) i++;   printf(The length of string is:%d\n,i);   }   运行结果:   The length of string is :6 6.4.3 字符数组的输入和输出   字符数组的输入和输出有两种形式:   (1) 采用“%c”格式符,逐个输入、输出。例6.6中的str[ ]数组,若执行   printf(%c,str[5]);则输出结果为g。   (2) 采用“%s”格式符,整个字符串一次输入、输出。例6.6中的str[ ]数组,若执行  printf(%s,str); 则输出结果为string。   使用%s格式来输入、输出字符串时,应注意以下几个问题:   ① 输出字符不包括结束符′\0′。   ② 使用scanf()函数来输入字符串时,应直接写字符数组的名字,而不应写取地址运算符,如scanf(%s,str),而不是scanf(%s,str)。因为数组名就代表数组的首地址。   ③ 输入字符串时,串长度应小于已定义的字符数组长度,因为系统在有效字符后会自动添加字符串结束标志′\0′。   ④ 字符串的输入是以“空格”、“Tab”或“回车”来结束输入的。通常,在利用一个scanf()函数来同时输入多个字符串时,字符串之间以“空格”为间隔,最后按“回车”结束输入。如执行scanf(“%s%s%s”,c1,c2,c3)时,键入c is fun,其结果如图6.4所示。   ⑤ 按%s格式输出字符串时,printf()函数中的输出项也要求是字符数组名,而不是数组元素名。 图 6.4 字符串存储示例 6.4.4 常用字符串处理函数   在C的函数库中有很多用来处理字符串的函数,这些函数大大方便了字符串的处理。下面介绍几种常用的字符串处理函数。   1) gets 字符串输入函数   调用形式:gets(字符数组)   功能:从终端输入一个字符串数组,并且得到一个函数值,该函数的返回值是字符数组的起始地址。   2) puts 字符串输出函数   调用形式:puts(字符串)   功能:将一字符串(以′\0

文档评论(0)

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

1亿VIP精品文档

相关文档