在 C 中转义一个 char *

Escaping a char * in C

几天前我不得不为一个小程序做一些东西,我需要将像 "foo\n" 这样的字符串转换成它的字符串化形式(类似于 "\"foo\n\"")。

但我一无所获,所以我最终编写了自己的函数(并且运行良好)。但我仍然想知道:是否有像这样对字符串进行字符串化的函数?

我知道 python 等价物 "%r" % strtostringify,我知道我可以在使用预处理器指令编译时精简代码片段:

#define TOSTRING(X) #X
#define STRINGIFY(X) TOSTRING(X)

但是有没有办法在 C 中动态生成它?

任何标准 函数均未提供转义特殊字符。


对于GPL,你可以看看standard c library for escaping a string