我正在做一些教程,并且有这条线
const std::string spaces(greeting.size(), " ");
然而,直到我将双引号更改为单引号,这才起作用
const std::string spaces(greeting.size(), ' ');
字符串初始化中的引号有什么意义?我试过检查 http://www.cplusplus.com/reference/string/string/ , 但没有找到可以向我解释这一点的东西
最佳答案
双引号""
在C++中是字符串字面量(用const char [N]
表示),而单引号' '
是一个字 rune 字 (char
),因此您正在调用 (std::size_t, const char [N])
构造函数。
它不存在,所以你得到一个编译错误。
您需要将其更改为可用的构造函数之一,例如:
string (size_t n, char c);
string (const char* s);
(您已经将第二个参数更改为 ' '
)
关于c++ - 带双引号的字符串初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29587999/