C语言指针超强版.ppt

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

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

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档