【发布时间】:2013-11-29 12:54:21
【问题描述】:
这是我最近遇到的一个问题。
如果我要做这样的事情:
string str1 = "some";
string str2 = "thing";
cout << str1 + str2 << endl;
我会得到下一个输出:something
但我只有这个:
char *chr1 = "How do"
char *chr2 = "I do this?"
我需要得到以下输出
那么,我该怎么做?是的,我真的需要char *。
【问题讨论】:
-
如果您所做的只是打印它们,您可以这样做
cout << chr1 << chr2 << endl;或者如果您真的想添加空格:cout << chr1 << ' ' << chr2 << endl; -
不只是打印,我需要获取 char * 变量作为结果容器,我需要它来进一步使用。
-
您是否考虑过使用
std::string并在需要const char*时只使用它的c_str()方法? -
因此,如果您尝试在函数中执行此操作并且尝试执行
return combined.c_str();,则返回的const char*将超出范围。 @user2890591 我注意到你在尝试@Paranaix 的解决方案时说你的“应用程序崩溃了”。我的建议是你返回一个std::string并调用c_str()每次你想使用const char*。