C程序设计:现代方法.pdf

C程序设计:现代方法.pdf

ID:48004974

大小:699.48 KB

页数:119页

时间:2020-01-12

C程序设计:现代方法.pdf_第1页
C程序设计:现代方法.pdf_第2页
C程序设计:现代方法.pdf_第3页
C程序设计:现代方法.pdf_第4页
C程序设计:现代方法.pdf_第5页
资源描述:

《C程序设计:现代方法.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C程序设计:现代方法第13章字符串•13.1字符串字面量•13.2字符串变量•13.3字符串的读/写•13.4访问字符串中的字符•13.5使用C语言的字符串库•13.6字符串惯用法•13.7字符串数组•问与答•练习第14章预处理器•14.1预处理器的工作方式•14.2预处理指令•14.3宏定义•14.4条件编译•14.5其他指令•问与答•练习第15章编写大规模程序•15.1源文件•15.2头文件•15.3把程序划分成多个文件•15.4构建多文件程序•问与答•练习第16章结构、联合和枚举•16.1结构变量•16.2结构类型•16.3数组和结构的嵌套•16.4联合•16

2、.5枚举•问与答•练习第13章字符串很难从字符串中找到感觉,但它们却是我们能指望的唯一交流纽带虽然在前12章中已经使用过char型变量和char型数组,但是仍然缺乏更便捷的方法来处理字符序列(或者,C语言的术语是字符串)。本章将弥补这一点,并介绍字符串常量(在C标准中称为,字符串字面量)和字符串变量。其中,字符串变量可以在程序运行过程中发生改变。13.1节介绍有关字符串字面量的规则,包括如何在字符串字面量中嵌入转义序列,以及如何分割较长的字符串字面量。13.2节说明声明字符串变量的方法,字符串变量并不等同于字符数组,字符串变量使用特殊的空字符来标示字符串的末尾。13

3、.3节描述了读/写字符串的方法。13.4节讨论用来处理字符串的函数的编写方法。13.5节涵盖了一些C语言函数库中处理字符串的函数。13.6节介绍在处理字符串时经常会采用的惯用法。13.7节描述如何创建一个数组,使这个数组的元素都是指向不同长度字符串的指针,这一节还会说明C语言使用这种数组为程序提供命令行支持的方法。13.1字符串字面量字符串字面量(stringliteral)是用一对双引号括起来的字符序列:"PutadiskindriveA,thenpressanykeytocontinue"我们是在第2章中首次遇到字符串字面量的。字符串字面量作为格式串常常出现

4、在printf函数和scanf函数的调用中。13.1.1字符串字面量中的转义序列字符串字面量可以像字符常量一样包含转义序列(7.3.1节)。某些时候,我们在printf函数和scanf函数的格式串中已经使用过转义字符。例如,已经知道字符串中每一个字符都会导致光标移到下一行:"CandyIsdandyButliquorIsquicker.--OgdenNash"所以输出为CandyIsdandyButliquorIsquicker.--OgdenNash-1-虽然字符串字面量中的八进制数和十六进制数的转义序列也都是合法的,但是它们不像字符转义序

5、列那样常见。请在字符串字面量中小心使用八进制数和十六进制数的转义序列。八进制数的转义序列在3个数字之后结束,或者在第一个非八进制数字符处结束。例如,字符串"1234"包含2个字符(123和4),而字符串"189"包含3个字符(1,8和9)。而另一方面,十六进制数的转义序列则不限制为3个数字,而是直到第一个非十六进制数字符截止。思考一下,如果字符串包含转义序列x81,那么会出现什么情况。x81这个字符在IBM兼容机上对应的字符为ü。字符串"Zx81rich"(“Zürich”)有6个字符(Z,81,r,i,c,和h),但是字符串"x81ber"却只有

6、2个字符(x81be和r)。大部分编译器将拒绝接收后面那种字符串,因为计算机通常把十六进制数的转义序列限制在x0-x7f(或可能为x0-xff)范围之内。13.1.2延续字符串字面量如果发现字符串字面量太长而无法放置在单独一行以内,只要把第一行用字符结尾,那么C语言就允许在下一行延续字符串字面量。除了(看不到的)末尾的换行符,在同一行不可以有其他字符跟在后面:printf("PutadiskindriveA,thenpressanykeytocontinue");顺便说一下,不只是字符串(虽然通常只用在字符串中),字符还可以用来分割任何长的符号

7、。使用有一个缺陷:字符串字面量必须从下一行的起始位置继续。因此,这就破坏了程序的缩进结构。C语言标准化时引入了更好的处理长字符串字面量的方法。根据C语言的标准,当两条或更多条字符串字面量相连时(仅用空白字符分割),编译器必须把它们合并成单独一条字符串。这条规则允许把字符串分割放在两行或者更多行中:printf("PutadiskindriveA,then""pressanykeytocontinue");13.1.3如何存储字符串字面量我们经常在printf函数调用和scanf函数调用中用到字符串字面量。但是,当调用printf函数并且用字符串字面量作为参

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。