如何将一个 int 拼接在一个 string 上

2022-02-10 19:15:53 浏览数 (1)

问题

例如下面的语句,

代码语言:javascript复制
std::string name = "John";
int age = 21;

如何把它们连接起来变成 John21

回答

代码语言:javascript复制
std::string name = "John";
int age = 21;
std::string result;

// 1. with C  11
result = name   std::to_string(age);

// 2. with IOStreams
std::stringstream sstm;
sstm << name << age;
result = sstm.str();

// 3. with itoa
char numstr[21]; // enough to hold all numbers up to 64-bits
result = name   itoa(age, numstr, 10);

// 4. with sprintf
char numstr[21]; // enough to hold all numbers up to 64-bits
sprintf(numstr, "%d", age);
result = name   numstr;
  1. 安全。需要 C 11 的支持,需 #include <string>,标准所支持,跨平台。
  2. 安全、低效、代码啰嗦。需 #include <sstream>,标准所支持,跨平台。
  3. 容易出错(你需要分配足够的内存)、快速、代码啰嗦。itoa 不是一个标准方法,不确定可以在所有平台适用。
  4. 容易出错(你需要分配足够的内存)、快速、代码啰嗦。标准所支持,跨平台。

0 人点赞