Как избежать строки для сгенерированного C ++?

Я пишу скрипт python, который генерирует код на C ++ на основе данных.

У меня есть string переменных python, которая содержит строку, которая может состоять из символов типа " или новых строк».

Каков наилучший способ избежать этой строки для генерации кода?

2 Solutions collect form web for “Как избежать строки для сгенерированного C ++?”

Способ, который я использую, основан на наблюдении, что строки C ++ в основном подчиняются тем же правилам относительно характеристик и экранированию как строка Javascript / JSON.

Python с версии 2.6 имеет встроенную библиотеку JSON, которая может сериализовать данные Python в JSON. Следовательно, код, предполагая, что нам не нужно включать кавычки, следующим образом:

 import json string_for_printing = json.dumps(original_string).strip('"') 

Я использую этот код, до сих пор без проблем:

 def string(s, encoding='ascii'): if isinstance(s, unicode): s = s.encode(encoding) result = '' for c in s: if not (32 <= ord(c) < 127) or c in ('\\', '"'): result += '\\%03o' % ord(c) else: result += c return '"' + result + '"' 

Он использует восьмеричные escape-последовательности, чтобы избежать всех потенциально проблематичных символов.

Python - лучший язык программирования в мире.