字符串的输入与输出

4.1 字符串

"里面是字符串"一个或多个字符的序列,
用双引号括起来。

'x'是一个字符;
"x"是一个字符串。

4.1.1 char类型

字符串被储存在 char 类型的数组中,一个单元储存一个字符,
以空字符 \0 结尾,占一个字符。

char ch[40];  //创建一个40个单元的数组

4.1.2 使用

printf("%s",ch);

4.1.3 strlen()函数

给出字符串中的字符长度(不含 \0 )

#include <string.h> //提供strlen()的函数原型
………
size = strlen(ch);

4.2 常量,预处理器

4.2.1 #define方法

一般写在 #include<stdio.h>后面。

#define NUM 20

定义常量 NUM 为20。
在定义常量时习惯大写。

C预处理器会把代码中所有的 NUM 替换为 20。

4.2.2 const方法

 const int NUM = 20

该常量无法被更改。

4.3 printf()和scanf()

4.3.1 转化说明

还有很多前缀未列出。

转化说明 输出
%a(%A) 浮点数,十六进制,p计数法
%c 单个字符
%d 有符号十进制整数
%e(%E) 浮点数,e计数法
%f 浮点数,十进制计数法
%g(%G) 自动选择%f,%e(%E)
%i 与%d相同
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x 无符号十六进制整数(小写)
%X 无符号十六进制整数(大写)
%% 打印一个百分号

4.3.2 scanf()函数

scanf("%d",&intnum);    //读取基本类型变量要加&
scanf("%s",words);      //读入字符数组中不加&

scanf()使用空白分割多个字段,%c除外

4.3.3 *的用法

4.3.3.1 在printf()中

width = 10;
num = 114514;

printf("The number is %*d",width,num)    //用于提供可更改的打印信息

4.3.3.2 在scanf()中

scanf("%*d %d %*d", &num);       //跳过加了*的输出项