代码之家  ›  专栏  ›  技术社区  ›  Sniggerfardimungus

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

  •  6
  • Sniggerfardimungus  · 技术社区  · 16 年前

    为了清楚起见,让我举个例子。我是 不 正在寻找一种获取字符串引号的方法,但我想替换以下内容:

    printf("foo");
    

    printf([alternate sequence]foo[alternate sequence]);
    

    出于好奇,我有一个涉及生成C/C++代码的自动化过程,但是(封闭源代码)商业工具涉及在其数据流中删除引号,文档非常清楚,它们没有提供一种逃避引号的方法。

    编辑:

    哇,我没想到会有这么大的反应。这可能需要对我的流程进行更详细的介绍。我在做自动构建系统,这意味着在修改我编译的代码时,我会受到某些限制。现在,我们必须接受这样一个假设,即我必须将字符串、空格和所有字符都放入预处理器定义中。我已经下了楼梯 'PreprocessorDefinition' road

    Preprocessor Definitions     WIN32;_DEBUG;THINGIE=$(THINGIE)
    

    ENV['THINGIE'] = "??''Yodeling Monkey Nuggets??''"
    run_msbuild_command
    

    我想是时候制定C计划了。

    6 回复  |  直到 8 年前
        1
  •  10
  •   Mehrdad Afshari    16 年前

    你在找一个 trigraph " 性格我认为不存在。

    并不是所有角色都有三角图。只有少数字符具有三角图序列。

        2
  •  8
  •   dirkgently    16 年前

    没有符合标准的。尝试使用宏包含标题:

     #define QUOTE(x) #x
    

    printf 作为:

     printf(QUOTE(hello));
    
        3
  •  4
  •   pm100    16 年前

     Character   Trigraph
     [           ??(
     \           ??/
     ]           ??)
     ^           ??'
     {           ??<
     |           ??!
     }           ??>
     ~           ??-
     #           ??=
    

    但是“不在名单上

        4
  •  3
  •   Carl Norum    16 年前

    我想你说的是 trigraphs . 据我所知,没有一个适合“角色”。

        5
  •  0
  •   asveikau    16 年前
    但是(封闭源代码)商业工具在其数据流中包含了带引号的内容,并且文档非常清楚,它们并没有提供一种逃避它们的方法。

    看起来很难看,但你可以试试这样:

    static const char foo[] = {'H', 'e', 'l', 'l', 'o', 0};
    
    printf(foo);
    

    #

        6
  •  -1
  •   Blue    8 年前

    你觉得用它怎么样 ´ 而不是 '

    我也面临同样的问题,并试图通过用无害的东西替换文本分隔符来避免它。

    推荐文章