Las secuencias de escape se utilizan para representar ciertos caracteres especiales dentro string literales y constantes de caracteres.

Están disponibles las siguientes secuencias de escape. ISO C requiere un diagnóstico si la barra invertida va seguida de algún carácter que no se enumere aquí:

Escapar
secuencia
Descripción Representación
' una frase byte 0x27 (en codificación ASCII)
" comilla doble byte 0x22 (en codificación ASCII)
? signo de interrogación byte 0x3f (en codificación ASCII)
\ barra invertida byte 0x5c (en codificación ASCII)
a campana audible byte 0x07 (en codificación ASCII)
b retroceso byte 0x08 (en codificación ASCII)
f formulario de alimentación – nueva página byte 0x0c (en codificación ASCII)
n avance de línea – nueva línea byte 0x0a (en codificación ASCII)
r retorno de carro byte 0x0d (en codificación ASCII)
t pestaña horizontal byte 0x09 (en codificación ASCII)
v pestaña vertical byte 0x0b (en codificación ASCII)
nnn valor octal arbitrario byte nnn
xnn valor hexadecimal arbitrario byte nn
unnnn
(desde C11)
Unicode carácter que no está en el juego de caracteres básico.
Puede resultar en varios caracteres.
punto de código U+nnnn
Unnnnnnnn
(desde C11)
Unicode carácter que no está en el juego de caracteres básico.
Puede resultar en varios caracteres.
punto de código U+nnnnnnnn

Notas

De las secuencias de escape octal, es el más útil porque representa la terminación null personaje en null-cadenas terminadas.

El personaje de nueva línea n tiene un significado especial cuando se utiliza en E / S en modo texto: se convierte al byte de nueva línea o secuencia de bytes específicos del sistema operativo.

Las secuencias de escape octales tienen un límite de longitud de tres dígitos octales, pero terminan en el primer carácter que no es un dígito octal válido si se encuentran antes.

Las secuencias de escape hexadecimales no tienen límite de longitud y terminan en el primer carácter que no es un dígito hexadecimal válido. Si el valor representado por una sola secuencia de escape hexadecimal no se ajusta al rango de valores representados por el tipo de carácter utilizado en este string constante literal o de carácter (char, char16_t, char32_t, o wchar_t), el resultado no está especificado.

Un nombre de personaje universal en un estrecho string literal o de 16 bits string literal puede correlacionarse con más de un carácter, p. ej. U0001f34c es 4 char unidades de código en UTF-8 (xF0x9Fx8Dx8C) y 2 char16_t unidades de código en UTF-16 (uD83CuDF4C).

La secuencia de escape del signo de interrogación ? se utiliza para evitar que los trígrafos se interpreten en el interior string literales: a string tal como "??/" se compila como "", pero si se escapa el segundo signo de interrogación, como en "??/", se vuelve "??/"

Ejemplo

#includeintmain(void)printf("ThisnisnantestnnShe said, "How are you?"n");

Producción:

This
is
a
test
 
She said,"How are you?"

Referencias

  • Estándar C11 (ISO / IEC 9899: 2011):
    • 5.2.2 Semántica de visualización de caracteres (p: 24-25)
    • 6.4.4.4 Constantes de caracteres (p: 67-70)
  • Estándar C99 (ISO / IEC 9899: 1999):
    • 5.2.2 Semántica de visualización de caracteres (p: 19-20)
    • 6.4.4.4 Constantes de caracteres (p: 59-61)
  • Estándar C89 / C90 (ISO / IEC 9899: 1990):
    • 2.2.2 Semántica de visualización de caracteres
    • 3.1.3.4 Constantes de caracteres

Ver también

  • Gráfico ASCII