- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六讲C语言字符与字符串讲述
前导程序 #includestdio.h #includestring.h #define DENSITY 62.4 int main(void) { float weight,volume; int size,letters; char name[40]; printf(Hi!Whats your first name?\n); scanf(%s,name); printf(%s,Whats your weight in pounds?\n,name); scanf(%f,weight); size=sizeof name; letters=strlen(name); volume=weight/DENSITY; printf(Well,%s,your volume is %2.2f cubic feet.\n,name,volume); printf(Also,your first name has %d letters.\n,letters); printf(And we have %d bytes to store it in.\n,size); return 0; } 程序说明 它使用一个数组(array)来存放一个字符串。这里,某人的名字被读进这个数组中。该数组是内存中一串连续的40个字节,其中每个字节都是可以存放一个字符值。 它使用%s转换说明符来处理字符串的输入和输出。请注意,在scanf()中,weight使用了前缀,而name没有(因为数组名name就是该数组的地址)。 它使用C函数strlen()来获取字符串的长度。 一、字符串简介 字符串(character string)就是一个或多个字符的序列。例如: Hi!Whats your first name?“ 双引号不是字符串的一部分,他们只是通知编译器其中包含了一个字符串,正如单引号标识着一个字符一样。 1.char数组和空字符 C没有为字符串定义专门的变量类型,而是把它存储在char类型的数组中。字符串中的字符存放在相邻的存储单元中,每个字符占用一个单元;而数组由相邻存储单元组成,所以把字符串存储到数组中是很自然的,如下图所示。 H i ! W h a t s y o u r f i r s t n a m e ? \0 请注意,图中数组的最后一个位置显示字符\0。这个字符就是空字符,大多数时候计算机可以为我们自动添加这个\0。C用它来标记字符串的结束。空字符不是数字0,它是非打印字符,其ASCII码的值为0。C的字符串存储通常以这个空字符结束。该字符的存在意味着数组的单元数必须至少比要存储的字符数多1。 一、字符串简介 2.使用字符串 #includestdio.h int main(void) { char praise[30]=What a super marvelous name!,name[20]; printf(Whats your name?\n); scanf(%s,name); printf(Hello! %s, %s,name,praise); return 0; } %s告诉printf()要打印一个字符串。%s出现两次是因为该程序要打印两个字符串:一个被存储在name数组中,另一个存储在praise数组中。 你无须亲自把空字符插入name数组中。scanf()在读取输入时会自动完成这项任务,同样,也无需在字符串praise中包含一个空字符,编译器负责完成这一事情。 请注意,scanf()只读取了Michael Jordan的名字Michael。scanf()开始读取输入以后,会在遇到第一个空白字符(空格blank、制表符tab或者换行符newline)处停止读取。因此,它在遇到Michael Jordan之间的空格时,就停止了扫描。一般情况下,使用%s的scanf()只会把一个单词而不是把整个句子作为字符串读入。C使用其它读取输入函数(例如gets())来处理一般的字符串。 一、字符串简介 3.字符串和字符 字符串常量“x“与字符常量‘x’不同。一个区别是‘x’属于基本类型(char),而“x“则属于派生类型(char数组)。第二个区别是“x“实际上由两个字符( ‘x’ 和‘\0’ )组成,如下图所示。 x \0 x ‘x’是一个字符 “x“是一个字符串 一、字符串简介 4.strlen()函数 #includestdio.h #includestring.h #define PRAISE What a super marvelous name! int main(void) { char name[40]; printf(Wh
您可能关注的文档
最近下载
- 预见性护理及早期风险识别PPT课件.pptx VIP
- 1.7 有理数的加减混合运算(分层练习).pdf VIP
- 打造“四有”体育课堂-发展学生核心素养.docx VIP
- 洋马发动机喷射泵拆卸更换调整.pptx VIP
- 2025年人工智能训练师(五级)初级资格理论考试练习题库(476题)含答案.pdf VIP
- 苏教版五年级小数的加法和减法练习题1(完美打印版).doc VIP
- 2023年上海市第二十四届初中物理竞赛(大同中学杯)初赛试卷及答案.docx
- 第5课 美丽河山我们的家 课件 人民版中华民族大家庭.pptx
- 英语人教版九年级全册Unit2 Section A教学设计.doc VIP
- 2025海康威视网络硬盘录像机(76+77+86+E系列)用户手册.docx VIP
文档评论(0)