如何从字符串文字和附加的 int 或 long 值有效地创建 const c 字符串

How to efficiently create const c string from string literal and appended int or long value

在 C++ 中,如何根据文字和附加的 long/int 值有效地创建 C 字符串?我逻辑上想做这样的事情:

const char *sql = "select * from MyTable where ID = " + longId;

其中 longId 是一个 int/long 参数。

这编译了来自 user4581301 评论的答案,如果 user4581301 提出了他们自己的答案并要求我删除,我提议删除。
根据 user4581301 的建议,您可以这样做:

std::string s = "select * from MyTable where ID = " + std::to_string(longId);

您可以使用 s.c_str() 获得等效的 C 字符串,例如:

std::cout << s.c_str() << std::endl;

我认为来自 H.S 的答案。鉴于所问的问题,它是完美的。仅供参考,因为我使用的是 Qt(我在 OP 中没有提到),所以我最终使用了这段代码:

QString sql = QStringLiteral("SELECT v.drive_path_if_builtin, "
                                    "m.full_filepath "
                             "FROM media_table m "
                             "INNER JOIN volume_table v "
                                     "ON (v.id = m.volume_id) "
                             "WHERE m.id = %1;").arg(id);

... 然后在适当的地方,我需要一个 c 字符串,我使用 qPrintable(sql).