Personaje de escape en C

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.