【发布时间】:2016-11-06 21:47:12
【问题描述】:
我想将换行符和制表符等转义字符打印到 \n 和 \t 等可见转义序列中,所以我认为我应该先打印两个 \,然后再打印 n 以打印可见 \n。但它不起作用。答案打印 n 然后两个 \ 并且它有效。我不知道为什么。这是我的代码。
case '\n' :
s[j] = '\\';
s[j++] = 'n';
break;
这就是答案
case '\n':
s[j++] = '\\';
s[j] = 'n';
break;
谢谢!
【问题讨论】:
-
一切都与
++有关。j++表示“使用 j 的当前值,然后递增它。所以你的这样做:j[0] = '\\'; j[0] = 'n'; j = j + 1。你想要s[j] = '\\'; s[++j] = 'n'(++j表示递增 j 的值然后使用它) -
哦,谢谢!我想知道并没有发现。我不知道如何将 cmets 设置为答案。你介意在答案中回答吗?
-
这个问题是一个基本的 C 语法问题,可能不会为 SO 增加价值(人们甚至可能会说这个问题应该因此而关闭)。提出答案不仅只是在重复销售,而且可能会阻止问题被删除,因为没有附加价值。 (无意冒犯)
标签: c switch-statement escaping