У меня не было упоминаний о Кернигане и Ричи С в течение многих лет, но я помню, что там была страница, где говорилось о том, как вводить символы, которые вам недоступны. (ДАЛЕЕ назад, на некоторых клавиатурах не хватало таких символов, как ", ~ и т. Д.)
Чтобы было понятно, приведу пример. Я не ищу способ получить кавычки в строках, но я хочу заменить это:
printf("foo");
с этим:
printf([alternate sequence]foo[alternate sequence]);
Для любопытных, у меня есть автоматизированный процесс, который включает генерацию кода на C / C ++, но коммерческий инструмент (с закрытым исходным кодом) задействует кавычки в своих потоках данных, и в документации совершенно ясно говорится о том, что они не предоставляют способ избежать их.
EDIT:
Ух ты, я не ожидал такого тяжелого ответа. Это может заслужить немного больше подробностей о моем процессе. Я занимаюсь автоматизированными системами сборки, что означает, что я живу с определенными ограничениями, когда дело касается изменения кода, который я компилирую. На данный момент мы должны жить с предположением, что я должен получить строку, пробелы и все в определении препроцессора. Я уже пошел по дороге PreprocessorDefinition . Это оставило меня с моим обычным отступлением: определите строку в операционной среде и задайте определение файла проекта оттуда:
Preprocessor Definitions WIN32;_DEBUG;THINGIE=$(THINGIE)
Была надежда, что я смог обойти разбивку кавычек MSVC во всем, что было передано в сборку с / D, используя триграф, выполнив что-то вроде этого в моем скрипте автоматизации сборки:
ENV['THINGIE'] = "??''Yodeling Monkey Nuggets??''"
run_msbuild_command
Я думаю, пришло время для плана С.