- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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’ 时结束输出,并自动输
您可能关注的文档
最近下载
- 施工企业现场质量管理制度及奖惩办法.pdf VIP
- 传感器原理及应用 教案.pdf VIP
- 砂石料供应、运输、售后服务方案14627.pdf VIP
- 传承雷锋精神争做时代新人--主题班会课件.pptx VIP
- 气管切开非机械通气患者气道管理考试题及答案.doc
- 横河flxa21两线制电导率变送器快速启动手册.pdf VIP
- 图集规范-天津图集-12J5-1图集(2012版)平屋面 DBJT29-18-2013.pdf VIP
- 第2课+丰富多彩的中华传统体育+课件 2025-2026学年人教版(2024)初中体育与健康八年级全一册.pptx VIP
- 第12课 闭环控制助稳定 教案 义务教育人教版信息科技六年级全一册.pdf VIP
- 生命教育PPT模板.pptx VIP
文档评论(0)