C++ 中整数转字符串

2025年5月23日 | 6 分钟阅读

在 C++ 中,整数(int)和字符串(string)是两种不同的数据类型。整数主要用于表示数字,而字符串用于存储字符的集合。在 C++ 中,将整数(int)转换为字符串(std::string)是一个常见的操作。当进行输出格式化、日志记录或准备显示或存储到文件的数据时,这尤其有用。

Convert int to string in C++

有几种方法可以帮助在 C++ 中将 int 转换为 string。其中一些如下:

  • 使用 std::stringstream
  • 使用 std::to_string (C++11 及更高版本)
  • 使用 Boost 或其他库
  • 使用 sprintf 或 snprintf (C 风格)

现在,我们将逐一讨论这些方法。

使用 Stringstream 类将整数转换为字符串

C++ 中,stringstream 类是定义在头文件中的一个流类。它是一个用于对基于字符串的流执行输入输出操作的流类。

语法

它具有以下语法:

以下是用于插入或提取数据的运算符:

  • 运算符 >>: 从流中提取数据。
  • 运算符 <<: 将数据插入流中。

让我们通过一个示例来理解运算符的概念。

  • 在下面的语句中,<< 插入运算符将 100 插入流中。
  • 在下面的语句中,>> 提取运算符将数据从流中提取出来并存储在“i”变量中。

使用 Stringstream 类将 int 转换为 string 的示例

让我们以一个示例来演示如何在 C++ 中使用 stringstream 类将 int 转换为 string。

示例

编译并运行

输出

Enter an integer value: 45

An integer value is: 45
String representation of an integer value is: 45

说明

在此示例中,我们创建了一个 **k** 变量,并希望将 k 的值转换为字符串值。之后,我们使用 stringstream 类,它用于将 k 的整数值转换为字符串值。

使用 to_string() 方法将整数转换为字符串

在 C++ 中,**to_string()** 方法接受一个整数,并将该整数值或其他数据类型的值转换为字符串。

语法

它具有以下语法:

使用 to_string() 方法将 int 转换为 string 的 C++ 示例

让我们以一个示例来演示如何在 C++ 中使用 to_string() 函数将 int 转换为 string。

示例

编译并运行

输出

string value of integer i is: 11
string value of f is: 12.300000

说明

在此示例中,我们使用了 to_string() 函数,该函数将 int 和 float 值转换为其相应的字符串表示形式。它提供了一种简单易懂的方法来处理 C++ 中的数字到字符串的转换。

使用 boost.lexical cast 将整数转换为字符串

在 C++ 中,boost.lexical cast 提供了一个转换运算符,即 boost.lexical_cast,它将字符串值转换为整数值或其他数据类型值,反之亦然。

语法

它具有以下语法:

使用 boost.lexical cast 将整数转换为 string 的 C++ 示例

让我们以一个示例来演示如何在 C++ 中使用 boost.lexical() cast 将 int 转换为 string。

示例

编译并运行

输出

string value of integer i is :11

说明

在上面的示例中,我们使用 lexical_cast() 函数将“i”变量的值转换为字符串值。

使用 sprintf 或 snprintf (C 风格) 将整数转换为字符串

在 C++ 中,将整数转换为字符串的另一种方法是使用 C 风格函数 sprintf() 或 snprintf(),它们定义在 <cstdio> 头文件中。这些函数是 C 标准库的一部分,并提供格式化的字符串输出,也可用于执行类型转换,包括将整数转换为字符数组(C 风格字符串),后者可以转换为 std::string。

语法

它具有以下语法:

使用 sprintf/snprintf 将 int 转换为 string 的 C++ 示例

让我们以一个示例来说明如何在 C++ 中使用 sprintf/snprintf 将 int 转换为 string。

示例

编译并运行

输出

Converted string: 123

说明

在此示例中,我们使用 sprintf() 将整数转换为 C 风格字符串 (char[]),然后将其赋给 C++ std::string。这是一种传统的 C 风格方法,但在 C++ 中也有效。

何时以及为何我们在 C++ 中将 int 转换为 string?

在 C++ 中,int 用于存储数字,string 用于存储文本。有时,我们需要将数字 (int) 更改为文本 (string)。当我们需要时,这很有帮助:

  • 将数字与其他文本连接(拼接)
  • 将数字格式化为易于显示的样式
  • 将数字以文本形式保存在文件中
  • 在屏幕上显示数字

在 C++ 中执行此操作的一种方法是使用 stringstream 类。它允许我们将数字视为文本。我们将数字放入流中,然后将其读回为字符串。当我们需要执行以下操作时,这很有用:

  • 将数字作为文本传递给函数
  • 将其存储在使用字符串的数据结构中

结论

在 C++ 中,将 int 转换为 string 是一项简单的任务,具体方法取决于 C++ 版本和项目需求。对于现代 C++ 开发人员来说,std::to_string 是将 int 转换为 string 的清晰简洁的选择。了解其他方法(如 stringstream 和 sprintf)仍然很有价值,尤其是在处理旧代码或标准库支持有限的系统时。

C++ 整数转字符串选择题

1) 在 C++11 及更高版本中,以下哪种是将 int 转换为 string 最现代、最简单的方法?

  1. sprintf()
  2. std::to_string()
  3. std::stoi()
  4. atoi()

答案: b) std::to_string()


2) 在 C++ 中使用 stringstream 进行 int 到 string 转换的主要目的是什么?

  1. 将数字视为字符流
  2. 将多个整数存储在字符串中
  3. 对字符串执行数学运算
  4. 将小写字母转换为大写字母

答案: a) 将数字视为字符流


3) 在 C 风格编程中,以下哪种方法用于将 int 转换为 string?

  1. std::to_string()
  2. std::stringstream
  3. boost::lexical_cast
  4. sprintf()

答案: d) sprintf


4) 为什么程序员要在 C++ 中将 int 转换为 string?

  1. 执行算术运算
  2. 在循环中使用它
  3. 与其他文本一起显示或作为文本保存
  4. 将其转换为 float

答案: c) 与其他文本一起显示或作为文本保存


5) 在 C++ 中,boost::lexical_cast<std::string>(int) 函数执行什么操作?

  1. 将字符串转换为整数
  2. 将 float 转换为 string
  3. 将 int 转换为 string
  4. 将字符转换为 string

答案: c) 将 int 转换为 string


下一主题C++ vs Python