¿Cuál es el símbolo del espacio en blanco en C?

Estoy tratando de averiguar cómo comprobar si un carácter es igual a un espacio en blanco en C. Sé que las tabs son '\t' y las nuevas líneas son '\n' , pero quiero poder verificar solo una espacio normal (desde la barra espaciadora) dentro de una sentencia if .

¿Alguien sabe cual es el personaje para esto?

No hay un símbolo particular para el espacio en blanco. En realidad es un conjunto de algunos caracteres que son habitualmente:

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

Use la función de biblioteca estándar de ctype.h desde ctype.h si desea verificar cualquiera de estos espacios en blanco.

Para solo un espacio, use ' ' .

La representación de caracteres de un espacio es simplemente ' ' .

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

Pero si realmente estás buscando todo el espacio en blanco, entonces C tiene una función (a menudo es una macro) para eso:

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

Puedes leer sobre isspace aquí

Si realmente desea capturar todos los caracteres que no se imprimen, la función a utilizar es isprint desde la misma biblioteca. Esto trata con todos los caracteres debajo de 0x20 (el código ASCII para un espacio) y arriba de 0x7E (0x7f es el código para DEL, y todo lo que está arriba es una extensión).

En código crudo esto es equivalente a:

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

El valor ASCII del Space es 32. Así que puedes comparar tu carácter con el valor octal de 32, que es 40 o su valor hexadecimal, que es 20.

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

o

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

Se supone que cualquier número después de \ es octal, si el carácter justo después de \ no es x , en cuyo caso se considera que es un hexadecimal.

No se requiere una secuencia de escape especial: simplemente puede escribir el espacio directamente:

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

En ASCII, el espacio es el código 32, por lo que podría especificar el espacio con '\x20' o incluso con 32 , pero realmente no debería hacer eso.

Aparte: la palabra “espacio en blanco” es un truco para todo el espacio, la pestaña, la nueva línea y todo eso. Cuando te refieres específicamente al carácter de espacio ordinario, no debes usar el término.

hacer uso de la función isspace.

La función de biblioteca C int isspace (int c) verifica si el carácter pasado es un espacio en blanco.

Código de muestra:

  int main() { char var= ' '; if( isspace(var) ) { printf("var1 = |%c| is a white-space character\n", var ); } /*instead you can easily compare character with ' ' */ } 
 Los caracteres estándar de espacios en blanco son:

 '' (0x20) espacio (SPC)
 '\ t' (0x09) pestaña horizontal (TAB)
 '\ n' (0x0a) nueva línea (LF)
 '\ v' (0x0b) pestaña vertical (VT)
 '\ f' (0x0c) feed (FF)
 '\ r' (0x0d) retorno de carro (CR)

fuente: tutorialpoint

Para comprobar un símbolo de espacio puede utilizar el siguiente enfoque

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

Para verificar un espacio y / o un símbolo de tabulación (caracteres en blanco estándar) puede utilizar el siguiente enfoque

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

Para comprobar un espacio en blanco puede utilizar el siguiente enfoque

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