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; } } }