- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对C语言中几个标准字符理解
?
HYPERLINK /boyinnju/article/details/6877087 对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解
?????? C标准库里ctype.h中声明了一个函数:
????????????? 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’的显示是没有控制效果的。
文档评论(0)