对 C 标准中空白字符( 空格、 回车符(\r)、 换行符(\n)、 水平制表符(\t)、 垂直制表符(\v)、 换页符(\f)) 的理解 C 标准库里中声明了一个函数: int isspace(int c); 该函数推断字符 c 是否为一个空白字符。 C 标准中空白字符有: 空格( ‘ ’) 、 换页( ‘\f’) 、 换行( ‘\n’) 、 回车( ‘\r’) 、 水平制表符( ‘\t’) 、 垂直制表符( ‘\v’) 六个。下面是本人的一些理解。 空格 信任大家对它非常了解。值得注意的是它的 ASCII 码为 0x20, 而不是0x00。0x00 代表空( NULL) 。本人初学 C 时认为空格值为 0, 惭愧惭愧。 回车( ‘\r’) 我们在编辑文件时, 一般敲一下回车键就会转到下一行编辑。那么”回车”和”换行”是不是一回事呢? 显然不是的。大家不要被键盘上回车键效果所蒙蔽, 此”回车”( 回车符) 非彼”回车”( 回车键) 。 回车( ‘\r’) 效果是输出回到本行行首, 结果可能会将这一行之前的输出覆盖掉。例如执行: puts("hello world!\rxxx"); 在终端输出的是: xxxlo world! 假如将上面的字符串写入文件中, 例如执行: char *s = "hello world!\rxxx"; FILE *str = fopen("t.txt","r"); fwrite(s, 16, 1, str); 用文本编辑器打开 t.txt。显示的效果将由打开的编辑器所决定。 vi 的效果为 windows 记事本效果为 能够看到, vi 将\t 用^M 代替, 而记事本就没有显示该字符。 换行( ‘\n’) 顾名思义, 换行就是转到下一行输出。例如: puts("hello\nworld!"); 在终端中将输出 hello world! 但需要注意的是, 终端输出要达到换行效果用”\n”就能够, 但要在文本文件输出中达到换行效果在各个系统中有所区别。 在*nix 系统中, 每行的结尾是"\n", windows 中则是"\n\r",mac 则是"\r"。 水平制表符( ‘\t’) 信任大家对‘\t’还是比较熟悉的。一般来说, 其在终端和文件中的输出显示相当于按下键盘 TAB 键效果。一般系统中, 显示水平制表符将占 8 列。同时水平制表符开始占据的初始位置是第 8*n 列( 第一列的下标为 0) 。例如: puts("0123456\txx"); puts("0123456t\txx");在终端的输出为垂直制表符( ‘\v’) 垂直制表符不常见。它的作用是让‘\v’后面的字符从下一行开始输出, 且开始的列数为”\v”前一个字符所在列后面一列。例如: puts("01\v2345");在终端输出为换页( ‘\f’) 换页符的在终端...