第 4 章 字符串和格式化输入/输出
第四章 字符串和格式化输入/输出¶
👉【复习题】【编程练习题】¶
1. 字符串简介¶
1.1 char类型数组和null字符¶
字符串 是一个或多个字符的序列。
由双引号括起来。
C语言没有专门用于储存字符串的变量类型,字符串都是被存储到char类型的数组中。
数组是由连续的存储单元组成,字符串的字符被存储在相邻的存储单元中,每个单元存储一个字符。
⚠️注意:在数组末尾位置的字符是 \0。这是一个空字符(null character)。
C语言中使用 \0 规定了标记字符串的结束。空字符串不是数字0。是非打印字符,对应的ASCII码值是:0。
1.2 strlen()函数¶
string.h头文件 包含了strlen()函数和其他与字符串相关的函数(如拷贝字符串的函数和字符串查找函数)。
sizeof运算符以字节为单位给出对象的大小。(把字符串末尾不可见的空字符计算在内)
运算对象是类型时,圆括号不可少,是特定变量时,可有可无。
strlen()函数给出字符串中的字符长度。
2. 常量和C预处理器¶
这样输入实际值的常量叫作 符号常量 或 明示常量。
2.1 创建符号常量的方法¶
- 声明一个变量,然后将变量设置为所需的常量。
- 使用
#define(C预处理器)来定义常量(编译程序时替换)。中间没有 = 符号,末尾不加分号。一般推荐
#define声明的常量变量名大写。大写常量可提高程序的可读性。
2.2 const限定符¶
C90标准增加const关键字。用于限定一个变量为只读。
2.3 明示常量¶
C头文件中提供了两种明示常量。
limits.h提供了与整数类型大小限制相关的一系列明示常量。float.h提供了与浮点数大小限制相关的明示常量。
3. printf() 和 scanf()¶
printf() 和 scanf() 函数让用户与程序交流,属于输入输出函数(I/O函数)。
3.1 printf() 函数¶
请求 printf() 函数打印数据的指令要与待打印数据的类型相匹配。
printf()中包含的信息:

转换说明:指定如何把数据转换成可显示的形式。ANSI C常见的转换说明符如下:

⚠️注意:格式字符串中的转换说明一定要与后面的每个项相匹配。
👉小Tips:可以使用转换说明符控制输出的外观:字段宽度、小数位和字段内的布局。
3.2 scanf() 函数¶
scanf() 函数的规则:
- 如果
scanf()读取基本变量类型的值,在变量名前面加上一个 &。 - 如果用
scanf()把字符串读入到字符数组中,不要使用 &。