在c++中,把一个字符*多次放在另一个字符之间的最好方法是什么?

What is the best way to put a char* in between another one multiple times in c++?

本文关键字:字符 之间 另一个 是什么 方法 c++ 一个      更新时间:2023-10-16

我有一个char*看起来像:

opt = "abcdefghijklmnop";

现在我有另一个(const) char*像;

home = getenv("HOME");

我想做的是通过将char* home放在中间来改变char* opt,例如:

opt = "a" + home + "b" + home + "c" + home + ...;

最好的方法是什么?

如果我们将"最佳"定义为容易出错的程度,并考虑到易用性,那么在我看来,最好的方法是不使用char*,而是使用std::string。使用std::string,您可以执行

std::string foo = "World";
std::string builder = "Hello " + foo + "!";
结果

Hello World!

std::string也有一个接受const char*char*的构造函数,所以你仍然可以在返回它们的函数中使用它。还有一个c_str()成员函数,它将返回const char*,因此您仍然可以将其用于接受const char*char*的函数

你最好使用std::string如@kerrek说的,如果使用char *是必要的,你可以使用strcpy函数如这里所述