如何为生成的C++转义字符串?

Kri*_*izz 5 python code-generation escaping

我正在编写基于数据生成C++代码的python脚本.

我有python变量string,其中包含一个字符串,可以由字符"或换行符组成.

为代码生成转义此字符串的最佳方法是什么?

Kri*_*izz 6

我使用的方法是基于这样的观察:C++ 字符串基本上遵循与 Javascript/JSON 字符串相同的字符和转义规则。

Python从2.6版本开始内置了JSON库,可以将Python数据序列化为JSON。因此,假设我们不需要引号,代码如下:

import json
string_for_printing = json.dumps(original_string).strip('"')
Run Code Online (Sandbox Code Playgroud)

  • 除非字符串中存在 Unicode 字符。或者当它以引号结尾时。也不适用于二进制数据。在保持 C++ 可读性的同时将任意数据转义为 C++ 并不像听起来那么容易 - 上次我这样做时,我只是将每个字节转换为 \xNN 形式。 (3认同)