C中空格的符号是什么?
What is the symbol for whitespace in C?
我想知道如何在 C 语言中检查一个字符是否等于 white-space。我知道制表符是 '\t'
,换行符是 '\n'
,但是我希望能够检查 if
语句中的常规 space(来自 space-bar)。
有人知道这是什么字吗?
白色没有特定符号space。它实际上是一组几个字符,它们是:
' ' space
'\t' horizontal tab
'\n' newline
'\v' vertical tab
'\f' form feed
'\r' carriage return
如果您想检查其中任何一个白色-space,请使用isspace
standard library function from ctype.h
。
对于 space,使用 ' '
。
Space 的字符表示就是 ' '
。
void foo (const char *s)
{
unsigned char c;
...
if (c == ' ')
...
}
但如果你真的要全白space,那么 C 有一个函数(实际上它通常是一个宏):
#include <ctype.h>
...
void foo (const char *s)
{
char c;
...
if (isspace(c))
...
}
您可以阅读有关 isspace
here
如果你真的想捕获所有非打印字符,要使用的函数是来自同一个库的isprint
。这处理所有低于 0x20(space 的 ASCII 代码)和高于 0x7E(0x7f 是 DEL 的代码,高于它的是扩展名)的所有字符。
在原始代码中,这相当于:
if (c < ' ' || c >= 0x7f)
// Deal with non-printing characters.
不需要特殊的转义序列:您可以直接输入 space:
if (char_i_want_to_test == ' ') {
// Do something because it is space
}
在 ASCII 中,space 是代码 32,因此您 可以 通过 '\x20'
甚至 32
指定 space,但你真的不应该那样做。
旁白:"whitespace" 一词是 space、制表符、换行符等所有内容的统称。当您特指普通 space 字符时,不应使用该术语。
利用 isspace 函数。
The C library function int isspace(int c) checks whether the passed
character is white-space.
示例代码:
int main()
{
char var= ' ';
if( isspace(var) )
{
printf("var1 = |%c| is a white-space character\n", var );
}
/*instead you can easily compare character with ' '
*/
}
Standard white-space characters are −
' ' (0x20) space (SPC)
'\t' (0x09) horizontal tab (TAB)
'\n' (0x0a) newline (LF)
'\v' (0x0b) vertical tab (VT)
'\f' (0x0c) feed (FF)
'\r' (0x0d) carriage return (CR)
要检查 space 符号,您可以使用以下方法
if ( c == ' ' ) { /*...*/ }
要检查 space and/or 制表符(标准空白字符),您可以使用以下方法
#include <ctype.h>
//...
if ( isblank( c ) ) { /*...*/ }
要检查白色 space 您可以使用以下方法
#include <ctype.h>
//...
if ( isspace( c ) ) { /*...*/ }
Space
的 ASCII 值是 32。因此您可以将 char 与 32 的八进制值即 40 或其十六进制值即 20 进行比较。
if(c == '')
{ ... }
或
if(c == '\x20')
{ ... }
\
之后的任何数字都被假定为八进制,如果 \
之后的字符不是 x
,在这种情况下,它被认为是十六进制。
#include <stdio.h>
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;
}
}
}
我想知道如何在 C 语言中检查一个字符是否等于 white-space。我知道制表符是 '\t'
,换行符是 '\n'
,但是我希望能够检查 if
语句中的常规 space(来自 space-bar)。
有人知道这是什么字吗?
白色没有特定符号space。它实际上是一组几个字符,它们是:
' ' space
'\t' horizontal tab
'\n' newline
'\v' vertical tab
'\f' form feed
'\r' carriage return
如果您想检查其中任何一个白色-space,请使用isspace
standard library function from ctype.h
。
对于 space,使用 ' '
。
Space 的字符表示就是 ' '
。
void foo (const char *s)
{
unsigned char c;
...
if (c == ' ')
...
}
但如果你真的要全白space,那么 C 有一个函数(实际上它通常是一个宏):
#include <ctype.h>
...
void foo (const char *s)
{
char c;
...
if (isspace(c))
...
}
您可以阅读有关 isspace
here
如果你真的想捕获所有非打印字符,要使用的函数是来自同一个库的isprint
。这处理所有低于 0x20(space 的 ASCII 代码)和高于 0x7E(0x7f 是 DEL 的代码,高于它的是扩展名)的所有字符。
在原始代码中,这相当于:
if (c < ' ' || c >= 0x7f)
// Deal with non-printing characters.
不需要特殊的转义序列:您可以直接输入 space:
if (char_i_want_to_test == ' ') {
// Do something because it is space
}
在 ASCII 中,space 是代码 32,因此您 可以 通过 '\x20'
甚至 32
指定 space,但你真的不应该那样做。
旁白:"whitespace" 一词是 space、制表符、换行符等所有内容的统称。当您特指普通 space 字符时,不应使用该术语。
利用 isspace 函数。
The C library function int isspace(int c) checks whether the passed character is white-space.
示例代码:
int main()
{
char var= ' ';
if( isspace(var) )
{
printf("var1 = |%c| is a white-space character\n", var );
}
/*instead you can easily compare character with ' '
*/
}
Standard white-space characters are − ' ' (0x20) space (SPC) '\t' (0x09) horizontal tab (TAB) '\n' (0x0a) newline (LF) '\v' (0x0b) vertical tab (VT) '\f' (0x0c) feed (FF) '\r' (0x0d) carriage return (CR)
要检查 space 符号,您可以使用以下方法
if ( c == ' ' ) { /*...*/ }
要检查 space and/or 制表符(标准空白字符),您可以使用以下方法
#include <ctype.h>
//...
if ( isblank( c ) ) { /*...*/ }
要检查白色 space 您可以使用以下方法
#include <ctype.h>
//...
if ( isspace( c ) ) { /*...*/ }
Space
的 ASCII 值是 32。因此您可以将 char 与 32 的八进制值即 40 或其十六进制值即 20 进行比较。
if(c == '')
{ ... }
或
if(c == '\x20')
{ ... }
\
之后的任何数字都被假定为八进制,如果 \
之后的字符不是 x
,在这种情况下,它被认为是十六进制。
#include <stdio.h>
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;
}
}
}