第10章 字符串-【千锋教育】C语言程序设计(微课)

2023-03-21
| 54页
| 105人阅读
| 0人下载
教辅

内容正文:

第10章 字符串 字符串表示 字符串输入 字符串输出 操作字符串 通过命令行传递参数 字符串函数的实现 C语言程序设计 字符串表示 字符串输入 字符串输出 操作字符串 通过命令行传递参数 字符串函数的实现 01 02 04 05 03 目 录 CATALOUGUE 初心至善 匠心育人 掌握字符串的表示 理解获取命令行参数 熟悉字符串的输入与输出 掌握字符串函数的实现 学 习 目 标 LEARNING OBJECTIVES 初心至善 匠心育人 10.1 字符串表示 10.1.1 字符数组 10.1.2 字符串 10.1.3 字符串与指针 初心至善 匠心育人 字符数组就是用来存放字符的数组。具体示例如下: 上面的语句定义了一个长度为8的字符数组,并为其指定了初始值。从中可以得出,字符数组和其他数组定义方式类似,只是存储的元素类型为字符型而已。每个元素占用一个字节,具体如图所示: 10.1 字符串表示 10.1.1 字符数组 初心至善 匠心育人 第4行:定义字符数组a并初始化。 第6~9行:循环输出数组a中的每个字符元素。 10.1 字符串表示 10.1.1 字符数组 初心至善 匠心育人 在各种编程语言中,字符串都是十分重要的。C语言中并没有直接提供字符串这个特定类型,而是用特殊的字符数组来存储字符串。C语言对于字符串做了如下规定:以空字符'\0'结尾的字符数组被称作字符串。这种字符数组也被称为C风格字符串。 要将上一小节中用到的字符数组转换成字符串,需要修改为下面的代码: 注意到上面的语句中省略了a的大小。修改后,由于数组的末尾多了一个空字符,字符数组a的大小为9。但是这个字符串的长度为8,注意字符串的长度并不包括末尾空字符。此外,还可以在空字符后面添加其他字符,具体示例如下: 10.1 字符串表示 10.1.2 字符串 初心至善 匠心育人 这个字符数组的大小为11,但由于空字符出现在字符数组的中间,因此它所表示的字符串仅仅是“qianfeng”,对应的字符串长度是8。从字符数组的第一个字符开始,遇到第一个空字符就标志着字符串的结束。 在字符数组初始化时,这种给每个数组元素赋初值的表达未免有点繁琐。在C语言程序中可以直接使用一个字符串常量对字符数组进行初始化,具体示例如下: 上例中双引号之间的是一个字符串常量。一旦这样声明,会自动在字符串常量后添加一个空字符'\0'作为字符串的结束标志,该标志总在最后一个字符之后。这意味着字符数组a的大小不是8个字节,而是9个字节。 上面的定义和下面的定义是等价的: 10.1 字符串表示 10.1.2 字符串 初心至善 匠心育人 由定义数组的方法可知,可以在声明时省略数组大小,让编译器自动确定数组的大小,具体示例如下: 接下来通过一个案例来演示字符串与字符数组之间的关系,具体如下例所示。 10.1 字符串表示 10.1.2 字符串 第6行:打印字符数组a所占的字节数。 第7~10行:通过for循环输出每个元素在内存中的地址及对应的值。 另外,可以用更简洁的方法来定义字符数组,即省略字符串常量前后的大括号。: 初心至善 匠心育人 在指针一章中,数组名可以当作指针使用,指针也可以被直接用来访问数组中的元素。字符型指针可以使用char*来定义,它既可以指向一个字符型变量,也可以指向整个字符串。具体示例如下: 上例中字符指针p既指向了字符'q',又指向了字符串"qianfeng",这是因为字符'q'位于字符串"qianfeng"的起始处,由于p指向的是字符串"qianfeng"所在的内存地址的起始位置,因此它也是指向字符'q'的字符指针。 10.1 字符串表示 10.1.3 字符串与指针 初心至善 匠心育人 此外,还可以通过字符指针遍历整个字符串中的每个字符,进而对字符串进行操作。由于C风格字符串总是以空字符‘\0’结尾,因此在循环时没必要提前获取整个字符串的长度,只要每次循环开始之前判断当前位置是否为空字符即可。如果是空字符,则结束循环。具体如下例所示: 第5行:使用取值操作符*从指针p指向的地址取得了字符'q'并输出,这是通过字符指针访问了单个字符。 第6行:将整个字符指针直接传递给printf函数,由格式化输出参数%s输出整个字符串,这是通过字符指针访问了整个字符串。 10.1 字符串表示 10.1.3 字符串与指针 初心至善 匠心育人 第7~12行:每次循环时,p指向的字符减去'a' - 'A',且p自身也被加1。在最后一次循环完成后,p指向整个字符数组的最后一个字节,即空字符。 第15行:将指针p重新指到字符数组首部。 第16~20行:通过循环输出字符数组中的每个字符。 10.1 字符串表示 10.1.3 字符串与指针 初心至善 匠心育人 可能有读者在编写程序时,将上例中的4、5行写成

资源预览图

第10章 字符串-【千锋教育】C语言程序设计(微课)
1
第10章 字符串-【千锋教育】C语言程序设计(微课)
2
第10章 字符串-【千锋教育】C语言程序设计(微课)
3
第10章 字符串-【千锋教育】C语言程序设计(微课)
4
第10章 字符串-【千锋教育】C语言程序设计(微课)
5
第10章 字符串-【千锋教育】C语言程序设计(微课)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。