这是我的一段代码。我是新来的,但很热衷于学习c++。我很好奇为什么当我试图将一个新变量first_letter
声明为字符串,以保持我以前的字符串变量greetings
的第一个字母的值时,会出现这个错误代码。No viable conversion from 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::value_type' (aka 'char') to 'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')
int main()
{
std::string greetings = "hello";
std::string first_letter = greetings[0];
std::cout<<first_letter;
return 0;
}
我了解一些关于char的知识,以及它是如何将字符作为整数并可互换的。请随意解释,只要你需要,我也会在谷歌上查找你的详细信息来学习。非常感谢。
没有从字符到字符串的隐式转换。你可以使用构造函数
std::string first_letter(1, greetings[0]);
或
std::string first_letter(greetings, 0, 1);
std::string
没有采用char
的隐式构造函数。但是,您可以从char
构造字符串,如下所示:
std::string first_letter { greetings[0] };
这是一个演示。