加入2个const char*s c ++

Luk*_*uke 2 c++ string string-concatenation char

如何将两个const char*s组合成第三个?

我正在尝试使用此代码执行此操作:

const char* pName = "Foo"
printf("\nMy name is %s.\n\n\n",pName);
const char* nName;
int num_chars = asprintf(&nName, "%s%s", "Somebody known as ", pName);
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

'asprintf': identifier not found
Run Code Online (Sandbox Code Playgroud)

我通过以下代码包含stdio.h:

#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 9

简单,只需使用C++:

const char* pName = "Foo"
std::string name("Somebody known as ");
name += pName;

const char* nName = name.c_str();
Run Code Online (Sandbox Code Playgroud)


pb2*_*b2q 7

asprintf是GNU扩展.您可以使用snprintf,或者 strncat,但您需要自己处理内存管理:asprintf为您分配结果.

更好地使用std:string,这将使代码更容易.

  • 如果使用`std :: string`,则可以通过`std :: string :: c_str()`函数从中获取const char*. (2认同)