【问题标题】:Create char from char* that includes escape character从包含转义字符的 char* 创建 char
【发布时间】:2011-08-24 09:17:18
【问题描述】:

考虑以下 char* 示例:

char* s = "\n";

如何将其转换为表示换行符的单个字符,如下所示:

char c = '\n';

除了处理换行符之外,我还需要能够将任何带有转义字符的字符转换为字符。这怎么可能?

【问题讨论】:

  • char c = *s; 有效。字符串里面的'\n',源码形式只有两个字符:编译后是单个字符;所有其他转义字符都相同。字符串"fo\111\tar",编译后有7个字符(源代码中可见的6个和一个空终止符)。
  • @pmg - 这是一个答案,而不是发表评论!
  • @pmg :JonH 是对的。发布它

标签: c pointers char


【解决方案1】:

char c = *s; 有效。

字符串里面的'\n'源码形式只有两个字符:编译后是单个字符;所有其他转义字符都相同。

字符串"fo\111\tar",编译后有7个字符(源代码中可见的6个('f''o''\111''\t''a''r')和一个空终止符)。

【讨论】:

    【解决方案2】:

    取消引用它:

    char* s = "\n";
    char c = *s;
    

    【讨论】:

      【解决方案3】:

      正如其他人所说,换行符实际上只是内存中的一个字符。要从字符串指针中获取单个字符,您可以像访问数组一样访问指针(当然,假设为指向的字符串分配了内存):

      char* s = "\n";
      char  c = s[0];
      

      【讨论】:

        【解决方案4】:

        你是这个意思吗?

        char * s = "\n";
        char c = *s;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-05
          • 1970-01-01
          • 2011-08-09
          • 2021-07-19
          • 2020-02-02
          • 1970-01-01
          • 2020-09-29
          • 2014-03-15
          相关资源
          最近更新 更多