用sprintf附加到char数组

时间:2019-12-22 21:40:47

标签: c++ printf

所以这样做很诱人:

char buf[1024] = "this is";
std::sprintf(buf, "%s test", buf);

但这是未定义的行为。我想可以通过临时解决:

char buf[1024] = "this is";
std::sprintf(buf, "%s test", std::string(buf).c_str());

这种方法的缺点是什么?

1 个答案:

答案 0 :(得分:5)

要将字符串附加到char数组,请使用strcat

char buf[1024] = "this is";
std::strcat(buf, " test");