C语言字符串课件.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第十章字符串字符串与数组1.字符串的本质所谓字符串常量就是用双引号括起来的一组字符。但实际上,字符串是一种字符型数组,并且这个数组的最后一个单元的值是‘\0’(即数值0)。也就是说,字符串是一种以‘\0’结尾的字符数组。这个结尾的字符‘\0’什么也不干,唯一的作用是标志字符串到此结束。比如,字符串常量abcde的内存映象是:字符串与字符数组我们可以利用字符数组变量存放字符串,C语言允许象下面这样将字符串作为初值赋值给字符数组变量:charstr[]=abcde;上面的变量定义等价于:charstr[]={a,b,c,d,e,\0};//大小是6但却不等价于:charstr[]={a,b,c,d,e};//大小是5也可以这样为一个字符数组变量赋初值:charstr[10]=abcde;//大小是10它等价于:charstr[10]={a,b,c,d,e};因为,未指定值的字符单元默认被赋值为0了。字符串与字符数组若有以下定义char*sp,s[10];以下赋值是不合法的:s=“hello!”;字符串常量在复制过程中给出的是这个字符串在内存中所占一串连续存储单元(无名一维字符数组)的首地址,s是一个不可重新赋值的数组名。sp=“hello!”;把字符串在内存中所占的首地址赋予char类型的指针变量sp。字符串与字符数组对字符数组进行字符串赋值需注意:1、字符数组大小必须定义足够大,因此字符串的长度必须小于字符数组的大小2、在字符串的末尾必须赋空值\0,用以表示字符串结束。3、如果在定义时没有对字符数组初始化,那么之后只能对其元素进行逐个赋值。字符串与数组同样,字符串常量只能在定义字符数组变量时赋初值给字符数组变量,而不能将一个字符串常量直接赋值给字符数组变量。下面的做法是错误的:charstr[20];str=abcdef;首先,str是数组名,不能被赋值。其次,“abcdef”的值是该字符串常量在内存中的地址,本身并不是字符序列。字符串与数组字符数组与字符串的区别字符数组的每个元素可存放一个字符,但它并不限定最后一个字符应该是什么。在C语言中,因为有关字符串的大量操作都与串结束’\0’有关,因此,在字符数组中的有效字符后面加上’\0’,可以把这种一维数组“看做”字符串变量。总之,仅可以在字符数组内存放字符串,不能通过赋值语句直接将字符常量或其它字符数组字符串直接付给字符串变量。字符串是字符数组的一种具体应用。经典例题设有数组定义:chararry[]=“china”;则数组arry所占的空间为A4个字节B5个字节C6个字节D7个字符以下不能正确进行字符串赋初值的语句是________。A)charstr[5]=good!; B)charstr[]=good!;C)charstr[6]=good!; D)charstr[5]={g,o,o,d};正确答案:A(知识点:字符数组的初始化)试题分析:每个字符串末尾都有一个结束‘\0’,因此,字符串good!在内存中占6个字符型存储单元,在初始化时,可以不指定数组的大小,或指定一个大于或等于6的值。选项D中给出的初值个数小于数组的大小5,则将初值赋给数组前面的元素,其后的元素值为‘\0’。2.字符及字符串操作(1)字符串的输入常用的能输入字符串的函数由两个:scanf函数和gets函数。scanf函数在输入字符串时使用%s格式控制符,并且与%s对应的地址参数应该是一个字符数组,scanf函数会自动在字符串后面加0。比如,下面的程序要求输入一个字符串,输出这个字符串的长度:2.字符及字符串操作但利用scanf函数输入字符串有个不足,当遇到空格时,scanf的输入操作便终止了。我们无法利用scanf函数输入一个包含多个单词和空格的句子。能输入完整句子的函数是gets函数。gets的调用格式:gets(字符数组变量名);gets的主要功能:接受键盘输入,将输入的字符串存放在参数数组中,当遇到回车时返回。gets函数会自动在字符串后面添加结尾字符‘\0’。例如下面的程序:charstr[80];gets(str);当输入:HelloSPtheSPworldCR时,str中的字符串将是:He

文档评论(0)

bookst + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档