【问题标题】:invalid conversion from ‘const char*’ to ‘char’从“const char*”到“char”的无效转换
【发布时间】:2011-11-10 19:19:08
【问题描述】:

我正在尝试使用以下代码行将字符串中的某个字符替换为空格:

str[i] = " ";

如何在不出现问题标题错误的情况下实现这一点?

【问题讨论】:

  • 我会假设 C++,因为你没有说。

标签: c++ string compiler-errors


【解决方案1】:

使用单引号

str[ i ] = ' ';

在 C++ 中,标记" " 是一个字符串字面量,它表示两个字符的数组:字符集中的空格值(例如,ascii 中的值 32)和零。另一方面,标记' ' 表示具有空格值(通常为32)的单个字符。请注意,在 C 中,标记 ' ' 表示具有空格值的整数。 (在 C 中,sizeof ' ' == sizeof(int),而在 C++ 中,sizeof ' ' == sizeof(char) == 1。)

【讨论】:

    【解决方案2】:

    单个char 文字通过单个引号获得:

    str[i] = ' ';
    

    带有双引号的文字是一个完整的字符串文字(char 的以 null 结尾的数组),但您只是替换了一个 char

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多