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’的显示是没有控制效果的。

————————————————
版权声明:本文为CSDN博主「boyinnju」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/boyinnju/article/details/6877087

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

  1. python-字符串中空白字符( \n,\t,\r)删除

    python-字符串中空白字符( \n,\t,\r)删除 1. 去除字符串中间的空白字符可以使用replace方法 test = "dfew\tdfwesf" print(test ...

  2. Unity中解决空格导致文本的换行问题

    一:前言 当Text的文本中的字符串一行显示不下并有空格时,空格后的字会被当作一个整体换行显示 Unity这样设定是用于英语等西文的,是为了保证单次不会被分开显示,所以空格后的字符串会被当成一个单词给 ...

  3. vue项目中去空格 回车

    问题: 使用css属性 white-space:nowrap 无法让文字一行展示超出隐藏,显示省略号(时好时坏) 为保险 我采用用js 先过滤一次需要渲染的数据 tansf (e){let a = e ...

  4. linux系统vim下换行输入_vim 中输入特殊字符回车符号('\r')

    回车的含义:将光标移动到行首部 linux 下回车符号为'\r',windows下为'\r\n' linux环境下在vim中输入回车符号方式: 测试方式:我们在一个文本文件中输入一串数字,然后在末尾输 ...

  5. 去除 字符串中空格/回车

    去除 字符串中空格/回车 1),java去除字符串中的空格.回车.换行 符.制表符 import java.util.regex.Matcher; import java.util.regex.Pat ...

  6. c语言中表明空格的是什么代码,C语言代码中的空白符表示什么

    空格.制表符.换行符等统称为空白符(space character),它们只用来占位,并没有实际的内容,也显示不出具体的字符. 制表符分为水平制表符和垂直制表符,它们的 ASCII 编码值分别是 9 ...

  7. Windows、Unix、Mac不同操作系统的换行问题 回车符\r和换行符\n

    一.概念: 换行符'\n'和回车符'\r' (1)换行符就是另起一行  --- '\n' 10 换行(newline) (2)回车符就是回到一行的开头 --- '\r' 13 回车(return) 所 ...

  8. 换行符‘\n’和回车符‘\r’

     大家对换行一定很熟悉,FreeEIM 跟大家讲解下换行符'\n'和回车符'\r' 换行符'\n'和回车符'\r' 顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回 ...

  9. 批处理:批量删除所有文件名中的空格

    批量删除所有文件名中的空格,记录下写的批处理文件 方式一: @echo off&setlocal enabledelayedexpansion for /f "delims=&quo ...

  10. 换行符javajava去除字符串中的空格、回车、换行符、制表符

    在改章节中,我们主要介绍换行符java的内容,自我感觉有个不错的建议和大家分享下 每日一道理 只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获.只有追求,才会品味堂堂 ...

最新文章

  1. 用一个demo理解一下Flutter动画内部的代码流程
  2. 【NLP】NLP实战篇之tensorflow2.0快速入门
  3. Java初阶知识总结
  4. Spring Boot注解
  5. mysql数据库水平分割_数据库的水平分割和垂直分割
  6. 【转】应用架构之道:分离业务逻辑和技术细节
  7. ExtJs2.0学习系列(8)--Ext.FormPanel之第五式(综合篇)
  8. (转)Win10下PostgreSQL10与PostGIS安装
  9. 怎样退出python的交互环境_python交互界面的退出方法
  10. scala可变长度参数(一)
  11. http请求中乱码------编码的转换
  12. ping,python实现批量ping包工具--小案例v5阶段版本,可以使用了
  13. 【Hoxton.SR1版本】Spring Cloud Gateway网关初体验
  14. 银行卡四要素实名验证,你知道多少?
  15. 个性的留言.html,个性留言经典语录集锦
  16. 网易微专业web前端开发课程视频教程分享
  17. 如何建立自动语音问卷外呼系统
  18. UDP的主要特点、首部格式及功能
  19. 基于马尔科夫链的关于CpG岛的模式识别分类学习器
  20. 开发利器IntelliJ IDEA—带你体验各种神奇操作

热门文章

  1. 设计师:设计师的知识储备之异形曲面设计 巴洛克、洛可可 设计理论(三角形构图、平衡式构图、三分法构图 、九宫格构图)之详细攻略
  2. 动图gif怎么制作?制作方法你学会了吗?
  3. c语言函数实验总结小说,大一上期C语言实验报告7函数
  4. 班主任直接把奖学金名额给了我?就因为我用Python给她写了一个自动阅卷脚本
  5. 南阳oj 57题------6174问题
  6. 腾讯校招都会问些什么?| 五面腾讯(Java岗)经历分享
  7. iOS armv7, armv7s, arm64区别与应用32位、64位配置
  8. 总结:pytorch对应版本安装
  9. arch 关闭独显_manjaro上安装独显驱动(双显卡切换)的正确方法
  10. C++中的DLL调用0x00000000错误