C程序将特殊字符存储在字符串中

时间:2015-04-15 18:49:19

标签: c string

基本上,我无法解决这个问题,我希望我的C程序存储批处理程序的整个明文,然后插入文件然后运行。

我完成了我的程序,但拿着内容是我的问题。如何在字符串中插入代码并使其忽略所有特殊字符,如%s \ etc?

2 个答案:

答案 0 :(得分:1)

你必须使用\来转义特殊字符,你可以用另一个反斜杠(即\\)来反转反斜杠。

答案 1 :(得分:1)

正如Ian之前提到的,你可以使用\转义普通C字符串中不允许的字符;例如,换行变为\n,双引号变为\",反斜杠变为\\

如果您因任何原因无法或不愿意这样做,那么如果您的解决方案必须在C中,那么您可能会运气不好。但是,如果您愿意切换到C ++,那么您可以使用raw strings

const char* s1 = R"foo(
Hello
World
)foo";

这相当于

const char* s2 = "\nHello\nWorld\n";

原始字符串必须以R"开头,后跟任意分隔符(由任何源字符组成,但括号,反斜杠和空格;可以为空;最多16个字符),然后( ,并且必须以)结尾,然后是分隔符"。必须选择分隔符,以使终止子字符串(),分隔符,")不出现在字符串中。