C/C++中双引号字符的替代字符组合是什么?

Sni*_*gus 6 c c++ sequences character alternate

多年来我没有Kernighan和Ritchie C参考,但我记得那里有一个页面,里面谈到了如何输入你不能使用的字符.(当天回来,一些键盘缺少像",〜等字符)

为了清楚起见,让我举个例子.我不是在寻找一种在字符串中获取引号的方法,而是想要替换它:

printf("foo");
Run Code Online (Sandbox Code Playgroud)

有了这个:

printf([alternate sequence]foo[alternate sequence]);
Run Code Online (Sandbox Code Playgroud)

好奇的是,我有一个自动化过程,涉及生成C/C++代码,但(闭源)商业工具涉及其数据流中的条带引用,文档很清楚它们没有提供逃生的方法他们.

编辑:

哇,我没想到会有如此沉重的反应.这可能值得我的流程更详细一些.我正在做自动构建系统,这意味着当我改变我正在编译的代码时,我有一些限制.现在,我们必须假设我必须将一个字符串,空格和所有内容放入预处理器定义中.我已经走了'PreprocessorDefinition'之路.这让我得到了我通常的后备:在操作环境中定义字符串并让项目文件从那里设置定义:

Preprocessor Definitions     WIN32;_DEBUG;THINGIE=$(THINGIE)
Run Code Online (Sandbox Code Playgroud)

希望是我可以通过在我的构建自动化脚本中执行类似的操作来解决MSVC在使用三字符进行构建的任何内容中删除引号:

ENV['THINGIE'] = "??''Yodeling Monkey Nuggets??''"
run_msbuild_command
Run Code Online (Sandbox Code Playgroud)

我想是时候制定一个计划C.

Meh*_*ari 10

您正在寻找一个三字符"字符?我不认为一个存在.

所有角色都不存在三角形.只有少数几个字符具有三字符序列.

  • 根据2.3 Trigraph序列和2.5替代令牌,绝对不存在双引号的替代品. (3认同)

dir*_*tly 8

没有按照标准.尝试使用包含宏的标头:

 #define QUOTE(x) #x
Run Code Online (Sandbox Code Playgroud)

并生成一个printfas:

 printf(QUOTE(hello));
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是`#define QUOTE(x)#x`?AFAIK,您当前的宏输出所有输入的"x"字符串. (4认同)
  • 现在他只需要确保并设置所有内容,这样他就可以#include而不使用引号.:)在这种情况下,最好在命令行上定义QUOTE宏. (3认同)
  • 你的意思是QUTOE(你好).+1 (2认同)