Así que quiero verificar si alguien ingresa: \n
( '\'
y luego 'n'
) desde el teclado a una cadena, así que estoy haciendo algo como esto:
if ( ((str[i] == '\') && (str[i+1] == 'n')) ) { //... }
Sin embargo, esto no funciona porque reconoce \
como un personaje de escape y todo se rompe.
¿Alguna mejor manera de hacer esto?
Tienes que escapar \
doblándolo:
if ( ((str[i] == '\\') && (str[i+1] == 'n')) ){ }
La secuencia de escape para una barra invertida real es \\
, por ejemplo,
char c = getchar(); if(c == '\\') ... stuff ...
compara el \ como este. if ((str[i] == '\\') && (str[i+1] == 'n'))
porque tenemos que escapar de la secuencia de escape \.
En lugar de caracteres de escape, puedes usar los valores ASCII de esta manera
if ((str[i] == 92) && (str[i+1] == 'n')) ;
usas otro \
if ( str[i] == '\\' && str[i+1] == 'n');
Si el usuario ingresa como \
y n
usando el teclado.
entonces intenta así
if(str[i] == '\\' && str[i+1] == 'n')
Como \
está representado por \\
, entonces use \\
lugar de \
para verificar.