从'const char *'到'char'的无效转换

时间:2011-11-10 19:19:08

标签: c++ string compiler-errors

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

str[i] = " ";

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

2 个答案:

答案 0 :(得分:16)

使用单引号

str[ i ] = ' ';

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

答案 1 :(得分:5)

单个char文字是使用引号获得的:

str[i] = ' ';

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