逃避C中的角色

时间:2014-12-18 10:01:42

标签: c

所以我想检查是否有人从键盘输入\n'\'然后'n')到字符串,所以我做了这样的事情:< / p>

if ( ((str[i] == '\') && (str[i+1] == 'n')) ) {
    //...
}

然而,这不起作用,因为它将\识别为转义字符并且整个事情都会中断。

有更好的方法吗?

6 个答案:

答案 0 :(得分:5)

你必须通过加倍来逃避\

if ( ((str[i] == '\\') && (str[i+1] == 'n')) ){
}

答案 1 :(得分:2)

实际反斜杠的转义序列为\\,例如

char c = getchar();
if(c == '\\')
    ... stuff ...

答案 2 :(得分:1)

比较\像这样。 if ((str[i] == '\\') && (str[i+1] == 'n'))

因为我们必须逃避转义序列\。

答案 3 :(得分:0)

您可以使用ASCII值,而不是转义字符

  if ((str[i] == 92) && (str[i+1] == 'n'))
        ;

答案 4 :(得分:0)

你使用另一个\

    if ( str[i] == '\\' && str[i+1] == 'n');

答案 5 :(得分:-1)

如果用户使用键盘输入\n

然后尝试这样

 if(str[i] == '\\' && str[i+1] == 'n')

由于\\\表示,因此请使用\\代替\进行检查。