什么是在C / C ++双引号字符的备选字符组合?
题
我已经没有在几年Kernighan和Ritchie C基准,但我记得,有在那里一个网页,谈到了如何输入不可用你的字符。 (WAY早在一天,某些键盘缺乏类似的字符”,〜,等)
要清楚,让我举一个例子。我的的不的寻找一种方式来获得在字符串引号,而是,我要取代这个:
printf("foo");
与此:
printf([alternate sequence]foo[alternate sequence]);
有关的好奇,我的自动过程包括产生C / C ++代码,但(闭源)的商业工具参与条引号在其数据流和文件是这样的事实,很显然,它们不提供一个方式来逃避他们。
编辑:
哇,我没有预料这样一个沉重的响应。这可能对我的过程值得更多的细节。我做的自动化构建系统,这意味着我生活在一定的限制,当谈到改变,我编译代码。现在,我们要住在一起,我要得到一个字符串,空格和所有,成一个预处理definiton的假设。我已经走下“PreprocessorDefinition”道路。这给我留下了我一贯的回退:在定义操作环境的字符串,并有项目文件从那里设置的定义:
Preprocessor Definitions WIN32;_DEBUG;THINGIE=$(THINGIE)
在希望的是,我可以用三字符,在我的构建自动化脚本做这样的事情得到解决的报价MSVC的剥离任何东西交给构建与/ d:
ENV['THINGIE'] = "??''Yodeling Monkey Nuggets??''"
run_msbuild_command
我想它的时间为一个方案C
解决方案
您正在寻找一个三字母以"
性格吗?我不认为存在一个。
三字母不存在对所有字符。只有几个字符有字母序列。
其他提示
无按照标准。尝试包括与宏报头:
#define QUOTE(x) #x
和产生printf
为:
printf(QUOTE(hello));
您所想三字母
Character Trigraph
[ ??(
\ ??/
] ??)
^ ??'
{ ??<
| ??!
} ??>
~ ??-
# ??=
但“清单上的心不是
我觉得你是在谈论三合。据我读过,没有一个用于“字符。
但(闭源)在其数据流的商业工具条参与报价和文档的事实很清楚,他们不提供一种方式来逃避他们。块引用>听起来像是一个蹩脚工具。
它看起来丑陋,但你可以尝试这样的事:
static const char foo[] = {'H', 'e', 'l', 'l', 'o', 0}; printf(foo);
我也喜欢dirkgently的建议,在宏使用
#
,但是我不知道怎么会用空格怎么办?
您如何看待使用´
代替'
什么?
我面临同样的问题,并试图通过用一些无害替换文本分隔符,以避免它。
不隶属于 StackOverflow