Escape sequences
Las secuencias de escape se utilizan para representar ciertos caracteres especiales dentro de literales de cadena y constantes de carácter .
Las siguientes secuencias de escape están disponibles. ISO C requiere un diagnóstico si la barra invertida va seguida de cualquier carácter no listado aquí:
|
Secuencia de
escape |
Descripción | Representación |
|---|---|---|
| Secuencias de escape simples | ||
\'
|
comilla simple |
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
|
alimentación de formulario - nueva página |
byte
0x0c
en codificación ASCII
|
\n
|
alimentación de línea - nueva línea |
byte
0x0a
en codificación ASCII
|
\r
|
retorno de carro |
byte
0x0d
en codificación ASCII
|
\t
|
tabulación horizontal |
byte
0x09
en codificación ASCII
|
\v
|
tabulación vertical |
byte
0x0b
en codificación ASCII
|
| Secuencias de escape numéricas | ||
\
nnn
|
valor octal arbitrario |
unidad de código
nnn
|
\x
n...
|
valor hexadecimal arbitrario |
unidad de código
n...
(número arbitrario de dígitos hexadecimales)
|
| Nombres de caracteres universales | ||
\u
nnnn
(desde C99)
|
Unicode
valor en rango permitido;
puede resultar en varias unidades de código |
punto de código
U+
nnnn
|
\U
nnnnnnnn
(desde C99)
|
Unicode
valor en rango permitido;
puede resultar en varias unidades de código |
punto de código
U+
nnnnnnnn
|
Rango de nombres de caracteres universales
Si un nombre de carácter universal corresponde a un punto de código que no es
|
(desde C99) |
Notas
\ 0 es la secuencia de escape octal más comúnmente utilizada, porque representa el carácter nulo terminador en cadenas terminadas en nulo.
El carácter de nueva línea \n tiene un significado especial cuando se utiliza en E/S en modo texto : se convierte a la secuencia de bytes o byte de nueva línea específico 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 sea un dígito octal válido si se encuentra antes.
Las secuencias de escape hexadecimales no tienen límite de longitud y terminan en el primer carácter que no sea un dígito hexadecimal válido. Si el valor representado por una única secuencia de escape hexadecimal no se ajusta al rango de valores representados por el tipo de carácter utilizado en este literal de cadena o constante de carácter ( char , char8_t (desde C23) , char16_t , char32_t (desde C11) , o wchar_t ), el resultado no está especificado.
|
Un nombre de carácter universal en un literal de cadena estrecha o un literal de cadena de 16 bits (desde C11) puede mapearse a más de una unidad de código, por ejemplo, \U0001f34c son 4 char unidades de código en UTF-8 ( \xF0\x9F\x8D\x8C ) y 2 char16_t unidades de código en UTF-16 ( \xD83C\xDF4C ) (desde C11) . |
(desde C99) |
|
Un nombre de carácter universal correspondiente a un código de punto mayor que
|
(desde C99)
(hasta C23) |
|
La secuencia de escape del signo de interrogación \ ? se utiliza para evitar que los trigraphs sean interpretados dentro de literales de cadena: una cadena como "??/" se compila como " \" , pero si el segundo signo de interrogación se escapa, como en "? \? /" , se convierte en "??/" |
(hasta C23) |
Ejemplo
#include <stdio.h> int main(void) { printf("This\nis\na\ntest\n\nShe said, \"How are you?\"\n"); }
Salida:
This is a test She said, "How are you?"
Referencias
- Estándar C17 (ISO/IEC 9899:2018):
-
- 5.2.2 Semántica de visualización de caracteres (p: 18-19)
-
- 6.4.3 Nombres de caracteres universales (p: 44)
-
- 6.4.4.4 Constantes de caracteres (p: 48-50)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 5.2.2 Semántica de visualización de caracteres (p: 24-25)
-
- 6.4.3 Nombres de caracteres universales (p: 61)
-
- 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.3 Nombres de caracteres universales (p: 53)
-
- 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
Véase también
|
Documentación de C++
para
Secuencias de escape
|