C语言 | 空白符(空格制表符与换行符)浅析

Posted Neutionwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 | 空白符(空格制表符与换行符)浅析相关的知识,希望对你有一定的参考价值。

空格、制表符、换行符等统称为空白符(space character),它们只用来占位,并没有实际的内容,也显示不出具体的字符。

制表符分为水平制表符和垂直制表符,它们的 ASCII 编码值分别是 9 和 11。

  • 垂直制表符在现代计算机中基本不再使用,没法在键盘上直接输入,它已经被换行符取代。
  • 水平制表符相当于四个空格,对于大部分编辑器,按下 Tab 键默认就是输入一个水平制表符;如果你进行了个性化设置,按下 Tab 键也可能会输入四个或者两个空格。

对于编译器,有的空白符会被忽略,有的却不能。请看下面几种 puts 的写法:

#include<stdio.h>

int main()

    puts("neution");
    puts("wei");
   
    puts
    ("neutionwei");
   
    puts
    (
    "neutionwei"
    )
    ;
   
    puts   ("neutionwei");

    puts    (    "neutionwei"    )    ;

    return 0;

运行结果:

neution
wei
neutionwei
neutionwei
neutionwei
neutionwei

看到输出结果,说明代码没有错误,以上几种 puts 的用法是正确的。puts()之间、" "()之间可以有任意的空白符,它们会被编译器忽略,编译器不认为它们是代码的一部分,它们的存在只是在编辑器中呈现一定的格式,让程序员阅读方便。

需要注意的是,由" "包围起来的字符串中的空白符不会被忽略,它们会被原样输出到控制台上;并且字符串中间不能换行,否则会产生编译错误。请看下面的代码:

#include<stdio.h>

int main()

    puts("neu  tion wei");
    puts("neution
    wei");
    return 0;

编译结果:

puts.c: In function ‘main’:
puts.c:6:10: warning: missing terminating " character
     puts("neution
          ^
puts.c:6:5: error: missing terminating " character
     puts("neution
     ^
puts.c:7:8: warning: missing terminating " character
     wei");
        ^
puts.c:7:5: error: missing terminating " character
     wei");
     ^
puts.c:7:5: error: ‘wei’ undeclared (first use in this function)
puts.c:7:5: note: each undeclared identifier is reported only once for each function it appears in
puts.c:8:5: error: expected ‘)’ before ‘return’
     return 0;
     ^
puts.c:9:1: error: expected ‘;’ before ‘’ token
 
 ^

第 6~7 行代码是错误的,字符串必须在一行内结束,不能换行。把这两行代码删除,运行结果为:

neu  tion wei

以上是关于C语言 | 空白符(空格制表符与换行符)浅析的主要内容,如果未能解决你的问题,请参考以下文章

c#处理空白字符

读书笔记--C陷阱与缺陷

空白符号是啥?

VC++学习- 空格说明

Python中strip()lstrip()rstrip()用法详解

C 之 ctype.h 原型