32-本章小结
11.11 本章小结
C字符串是一系列 char 类型的字符,以空字符( '\0' )结尾。字符串可以存储在字符数组中。字符串还可以用字符串常量来表示,里面都是字符,括在双引号中(空字符除外)。编译器提供空字符。因此, "joy" 被存储为4个字符 j 、 o 、 y 和 \0 。 strlen() 函数可以统计字符串的长度,空字符不计算在内。
字符串常量也叫作字符串字面量,可用于初始化字符数组。为了容纳末尾的空字符,数组大小应该至少比容纳的数组长度多1。也可以用字符串常量初始化指向 char 的指针。
函数使用指向字符串首字符的指针来表示待处理的字符串。通常,对应的实际参数是数组名、指针变量或用双引号括起来的字符串。无论是哪种情况,传递的都是首字符的地址。一般而言,没必要传递字符串的长度,因为函数可以通过末尾的空字符确定字符串的结束。
fgets() 函数获取一行输入, puts() 和 fputs() 函数显示一行输出。它们都是 stdio.h 头文件中的函数,用于代替已被弃用的 gets() 。
C库中有多个字符串处理函数。在ANSI C中,这些函数都声明在 string.h 文件中。C库中还有许多字符处理函数,声明在 ctype.h 文件中。
给 main() 函数提供两个合适的形式参数,可以让程序访问命令行参数。第1个参数通常是 int 类型的 argc ,其值是命令行的单词数量。第2个参数通常是一个指向数组的指针 argv ,数组内含指向 char 的指针。每个指向 char 的指针都指向一个命令行参数字符串, argv[0] 指向命令名称, argv[1] 指向第1个命令行参数,以此类推。
atoi() 、 atol() 和 atof() 函数把字符串形式的数字分别转换成 int 、 long 和 double 类型的数字。 strtol() 、 strtoul() 和 strtod() 函数把字符串形式的数字分别转换成 long 、 unsigned long 和 double 类型的数字。