c - 如何在 C 编程中转义 & 字符?

标签 c escaping ampersand

我想使用 C 程序将包含 & 符号的 url 传递给 shell 脚本。所以我必须创建 url 字符串并使用系统调用将它传递给 shell 脚本。在 C 中制作字符串时如何转义 & 字符?要传递给脚本,我必须转义符号。如何做呢?它尝试了\&。但是它抛出了错误

最佳答案

您需要将 \& 传递给 shell。

如果你尝试

"echo \&\n"

在 C 端,由于 \& 不是有效的转义序列,您会从编译器中得到一个错误。您真正需要从 C 端转义的是反斜杠:

例如试试这段代码:

printf("echo \\&\n");

您会看到打印了 \&(因此它也可以通过 system 调用工作),这似乎是您想要的。

另一种仅适用于类 unix shell 的方法是用单引号保护参数:

printf("echo '&'\n");

请注意,它在 Windows 中不起作用,因为 Windows 不会将单引号视为引号。

在任何地方都适用的东西:用(转义的)双引号保护:

printf("echo \"&\"\n");

关于c - 如何在 C 编程中转义 & 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078031/

相关文章:

python3 : Unescape unicode escapes surrounded by unescaped characters

python - python3中转义XML字符串的未转义数据

Java String 将 '&' 替换为 & 而不是 & 为 &

c - 段错误 - 调试程序集 gdb

c - 什么时候使用malloc,真的有必要吗

c - 如何从同一个套接字发送和接收?

c - 在C中读取二维char数组

php - 如何将不同的智能应用横幅添加到 WordPress 网站上的各个页面?

PHP - & 在 header()