2010-07-21 87 views
13

Estoy escribiendo un programa para contar espacios en blanco, pestañas y nuevas líneas. Recuerdo cuál es la secuencia de escape para pestañas y nuevas líneas, pero ¿qué pasa con los espacios en blanco? \¿segundo? ¿O es ese retroceso?¿Cuál es la secuencia de escape C para los espacios en blanco?

+0

http://www.asciitable.com/ – sipwiz

+1

@sipwiz - mientras que \ 0x20 a menudo se puede usar para espacios, existe la cuestión de las diferentes codificaciones de caracteres de las que preocuparse. No todas las codificaciones de 8 bits están basadas en ASCII, y una secuencia de bytes en estos días podría ser una cadena codificada de Unicode. \ 0x20 es correcto para UTF-8, por supuesto, pero no para otras codificaciones. Estos * pueden * estar representados utilizando algún otro tipo que una matriz char, pero no necesariamente - las matrices char como flujos de bytes es un patrón tan común para el manejo de E/S independientemente de lo que representan los bytes. – Steve314

+0

@ Steve314 si el OP está usando una codificación que no sea ASCII o que no sea UTF8, entonces una buena apuesta es que ya sabría la respuesta a su pregunta, ya que él ya habría tenido algunos aros para saltar :). – sipwiz

Respuesta

2

\b es el retroceso (ASCII 0x8). No necesita un escape para el espacio regular (ASCII 0x20). Solo puede usar ' '.

+0

En realidad, podría ser útil para situaciones donde el espacio en blanco está "normalizado", como en los campos XML – glopes

1

'\ b' está en retroceso, y realmente no necesita una secuencia de escape para los espacios en blanco ya que '' funcionará bien.

6

Si desea comprobar si un carácter es un espacio en blanco, puede usar la función isspace() de <ctype.h>. En la configuración regional C predeterminada, verifica el espacio, la pestaña, el avance de página, la nueva línea, el retorno de carro y la pestaña vertical.

Cuestiones relacionadas