C中的空格符号是什么?

我试图弄清楚如何检查一个字符是否等于C中的空格。我知道标签是'\t'并且换行符是'\n' ,但我希望能够检查一个常规if语句中的正常空间(来自空格键)。

有谁知道这个角色是什么?

空白没有特定的符号。 它实际上是一组通常的一些字符:

 ' ' space '\t' horizontal tab '\n' newline '\v' vertical tab '\f' feed '\r' carriage return 

如果要检查这些空格中的任何一个,请使用ctype.h isspace标准库函数。

对于空间,请使用' '

空间的字符表示只是' '

 void foo (const char *s) { unsigned char c; ... if (c == ' ') ... } 

但是如果你真的在寻找所有的空白,那么C有一个函数(实际上它通常是一个宏):

 #include  ... void foo (const char *s) { char c; ... if (isspace(c)) ... } 

您可以在此处阅读有关isspace 信息

如果您真的想要捕获所有非打印字符, isprint使用的函数是来自同一库的isprint 。 这涉及0x20以下的所有字符(空格的ASCII代码)和0x7E以上(0x7f是DEL的代码,以及上面的所有内容都是扩展名)。

在原始代码中,这相当于:

 if (c < ' ' || c >= 0x7f) // Deal with non-printing characters. 

Space的ASCII值为32.因此,您可以将char与八进制值32进行比较,该值为40或其hex值为20。

if(c == '\40') { ... }

要么

if(c == '\x20') { ... }

\ _后面的任何数字都假定为八进制,如果\后面的字符不是x ,在这种情况下它被认为是hex。

不需要特殊的转义序列:您可以直接输入空格:

 if (char_i_want_to_test == ' ') { // Do something because it is space } 

在ASCII中,空格是代码32,因此您可以通过'\x20'或甚至32 指定空间,但实际上您不应该这样做。

除此之外:单词“whitespace”是一个全部用于空格,制表符,换行符以及所有这些内容。 当你专门提到普通的空间角色时,你不应该使用这个术语。

利用isspacefunction。

C库函数int isspace(int c)检查传递的字符是否为空格。

示例代码:

  int main() { char var= ' '; if( isspace(var) ) { printf("var1 = |%c| is a white-space character\n", var ); } /*instead you can easily compare character with ' ' */ } 
标准的空白字符是 - 

 ''(0x20)空格(SPC)
 '\ t'(0x09)水平标签(TAB)
 '\ n'(0x0a)换行符(LF)
 '\ v'(0x0b)垂直制表符(VT)
 '\ f'(0x0c)feed(FF)
 '\ r'(0x0d)回车(CR)

来源: tutorialpoint

要检查空格符号,可以使用以下方法

 if ( c == ' ' ) { /*...*/ } 

要检查空格和/或制表符号(标准空白字符),可以使用以下方法

 #include  //... if ( isblank( c ) ) { /*...*/ } 

要检查空白区域,您可以使用以下方法

 #include  //... if ( isspace( c ) ) { /*...*/ } 
 #include  main() { int c,sp,tb,nl; sp = 0; tb = 0; nl = 0; while((c = getchar()) != EOF) { switch( c ) { case ' ': ++sp; printf("space:%d\n", sp); break; case '\t': ++tb; printf("tab:%d\n", tb); break; case '\n': ++nl; printf("new line:%d\n", nl); break; } } }