马涵书包网:对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解

来源:百度文库 编辑:中财网 时间:2024/05/05 11:47:11
 

对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解

分类: 《C标准库》理解注释2011-10-16 00:01 181人阅读 评论(0) 收藏 举报

       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’)

       换页符的在终端的中的效果相当于*nix中clear命令。终端在输出‘\f’之后内容之前,会将整个终端屏幕清空空,然后在输出内容。给人的该觉是在clear命令后的输出字符串。

 

最后我想说明一点,‘\r’‘\t’‘\v’‘\f’也是控制字符,它们会控制字符的输出方式。它们在终端输出时会有上面的表现,但如果写入文本文件,一般文本编辑器(vi或记事本)对‘\r’‘\v’‘\f’的显示是没有控制效果的。

C语言中一个空格算不算一个字符? 苹果机光标、回车、空格都出现红色字符,怎么办???? ASP中 空格 和 回车 的问题!!!~ word中输入字符显示空格?? 【求教电脑高手】除空格和alt+255外,如何建立空白字符? oracle中clob取出来的数据”回车.空格”什么的没有了 请问在C++builder中如何对一个图像中的部分字符进行操作 在DOS命令符中输入c:\>d:后回车怎么显示拒绝访问?.. ? 在DOS命令符中输入c:\>d:后回车怎么显示拒绝访问?.. ? C语言 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 C问题,用FOR语句做:输入一行字符,分别统计其中英文字母,空格,数字和其他字符的个数. C语言编程:输入一行字符,统计出其中英文字母、空格、数字和其他字符的个数 c语言 过滤 文件中字符流 在记事本中,我想将其他字符替换为回车,怎么办 哪里有批量删除空行、空格和回车符的软件? 在编辑中经常碰到空格健一用,背景就出现空白。 怎么处理ASP的回车,空格~ VB中如果删除字符中的空格,有这样的函数吗 使用vc++时,如何可以计算某一字符串中包含多少字符数(包括空格)? 求C程序,要求测试输入的一个字符是数字,字母,空白还是其它 12题:在Word2000中段落是依(A回车 B空格 CCtyl DAlt)键来分隔的。 【求助】C程序--将文件中每一行字符反序(对最佳结果追加30分) 在c语言中,什麽地方有空格??? 从键盘输入一系列字符,以回车为结束符,编程统计其中非数字字符的个数