【发布时间】:2023-03-06 13:14:01
【问题描述】:
以下失败,错误为prog.cpp:5:13: error: invalid conversion from ‘char’ to ‘const char*’
int main()
{
char d = 'd';
std::string y("Hello worl");
y.append(d); // Line 5 - this fails
std::cout << y;
return 0;
}
我也尝试了以下方法,它可以编译但在运行时随机运行:
int main()
{
char d[1] = { 'd' };
std::string y("Hello worl");
y.append(d);
std::cout << y;
return 0;
}
对不起这个愚蠢的问题,但我已经在谷歌上搜索过,我看到的只是“char array to char ptr”、“char ptr to char array”等。
【问题讨论】:
-
编译器错误是的..我忘记了错误是什么,但这是合理的。
-
你在下面有更好的答案,但你可以让你的第二个例子像这样工作 char d[2] = {'d', 0};或者只是 char d[2] = "d";基本上,您需要一个 0 来终止您传递给 append 的 c 样式字符串
-
这里有很好的文档:sgi.com/tech/stl/basic_string.html