C语言字符串分析和总结.docxVIP

  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文档。上传文档
查看更多
C 语言字符串 考点一 用一维字符数组存放字符串 用一维字符数组存放字符串: A:字符串常量是由双引号括起来的一串字符,在表示字符串常量时,不需要人为在末尾加入‘\0’,c 编译程序将自动完成这一工作,在末尾添加‘\0’ B:字符串常量被隐含处理成一个以‘\0’结尾的无名字符型一维数组。字符串常量是字符串在内存中所占的一串连续存储单元的首地址。 用一维数组存放字符串 1:通过赋初值的方式给一维字符数组赋字符串: A:用给一般数组赋初值的相同方式给一维字符数组赋初 值:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小应该比它将要实际存放的最长字符串多一个元素,以便在末尾存放‘\0’。 B:在赋初值时直接赋字符串常量:可以直接用字符串常量给一维字符数组赋初值,系统将按字符串中的实际个数来定义数组的大小。 例如: char str[]=“abcdef”; 2:在 c 程序执行过程中给一维字符数组赋字符串A:不可以用赋值语句直接给字符数组整体赋一串字符,当 作字符串变量使用的字符数组,不能由赋值语句直接赋字符串常量。 例如:char str[10]; str[10]=“abcdef”;这样是不合法的。因为字符串常量给出的是地址值,而数组名str[]是一个地址常量,不是变量,所以不能被重新赋值。 B:给数组元素逐个赋字符值,最后人为加入字符串结束标志,可以通过逐个给数组元素赋值的方式,达到给一维字符数组赋字符串的目的。 考点二 使指针指向字符串 要使指针指向字符串,可以通过以下两种形式来实现。 通过赋初值的方式使指针指向一个字符串: 在定义字符指针变量的同时,将存放字符串的存储单元的起始地址赋给指针变量。例如: main() {char s[]={“aeiou”},*p=s; printf(“%c\n”,*p+4); } 在这段程序中,定义了字符数组 s[]和字符型指针变量p 并且用s 进行初始化。这是指针 p 指向字符串的首地址,所以*p 表示字符串的第一个元素‘a’,表达式*p+4=’a’+4=e 通过赋值运算使指针指向一个字符串: 如果已经定义了一个字符型指针变量,可以通过赋值运算符将某个字符串的起始地址赋给它,从而使其指向一个具体的字符串。 例如, char *p=”hello”; 定义字符型指针变量p,并且通过赋初值,使其指向字符串“hello”。 考点三 字符串的输入和输出 输入和输出字符串时的必要条件 A:当对字符串进行输出时,输出项既可以是字符串常量或字符数组名,也可以是指向字符串的字符型指针变量; B:当对字符串进行输入时,输入项可以是字符数组名,也可以是字符型指针变量(即地址)。当用字符数组名作为输入项时,输入的字符串将存放在字符数组中,因此,字符数组应有足够大的存储空间; C:当使用指针变量作为输入项时,指针必须依据指向确切的、足够大的存储空间,以便使输入端字符串能存放在其所指的具体的内存单元中。 用格式说明符%s 进行整串输入和输出 A:在 scanf 函数中使用格式说明符%s 实现整体输入字符串格式:scanf(“%s”,str) 说明:str 是地址值。调用此函数时,输入字符依次放入以这一地址为起始点的存储单元中,并自动在末尾加‘\0’。(str 可以是字符数组名、字符数组元素的地址或字符指针变量)注意事项: 1:用%s 格式符输入字符串时,空格和回车都作为输入数据的分隔符而不能被读入; 2:若输入字符串的长度超过字符数组所能容纳的字符个数时,系统并不报错,相当于下标越界; 3:当输入项为数组元素的地址时,输入的字符将从这一元素开始依次存放在该数组中; 4:当输入项为字符指针变量时,该指针变量必须已指向确定的有足够空间的连续存储单元。 B:在printf 函数中使用格式说明符%s 实现整体输出字符串: 格式 printf(“%s”,str); 说明:str 是地址值,调用 printf 函数时,将从这一地址开始, 依次输出存储单元中的字符,直到遇到第一个‘ \0’为止。’\0’字符串结束标志,不在输出字符子列。输出结束后不自动换行。 调用gets、puts 函数在终端输入或输出字符串 1:gets 函数 格式 gets(str); 说明:str 是存储字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。gets 函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符卫诗。换行符读入后,不作为字符串的内容,系统将自动用‘\0’代替。 2:puts 函数 格式 puts(str); 说明:str 是待输出字符串的起始地址。调用 puts 函数时,将从这一地址开始,依次输出存储单元中的字符,当遇到第一个‘\0’ 时结束输出,并自动输

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档