C++程序:将int型变量转换为字符串


C++中的整数类型变量可以存储正或负整数,其范围预先定义。字符串变量可以存储一系列字母、数字和特殊字符。在许多用例中,需要将int转换为字符串。我们将讨论三种不同的方法来将整数变量转换为字符串。

如果我们讨论算法,它非常简单明了。我们将输入存储在一个整数变量中,然后将其转换为字符串变量。

使用to_string函数

在C++中,将整数值转换为字符串最简单的方法是使用to_string函数。to_string函数默认可用;它以整数值为输入,并提供字符串值作为输出。我们来看下面的例子来进一步理解这个概念。

语法

int ip = <integer value>;
string op = std::to_string(ip);

算法

  • 将输入存储在一个整数变量中。
  • 使用to_string函数将整数值转换为字符串,并将其存储在一个字符串变量中。
  • 显示结果。

示例

#include <iostream> using namespace std; string solve(int ip) { //using the to_string function return to_string(ip); } int main() { int ip = 10; string op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " + op << endl; return 0; }

输出

The input value is: 10
The output value is: 10

在这个例子中,我们使用了to_string函数将整数值转换为字符串。需要注意的是,当我们显示输出时,我们使用插入运算符(<<)来显示整数值,但是当我们显示字符串时,我们只是将输出值与前面的字符串连接起来,以证明它是一个字符串。

使用ostringstream

ostringstream是一个包含一系列字符的字符串缓冲区。在这种方法中,我们将整数值输入到ostringstream对象中,然后将其格式化为字符串。

语法

int ip = <integer value>;
ostringstream oss;
oss << ip;
string op = oss.str();

算法

  • 将输入存储在一个整数变量中。
  • 将输入整数变量传递给ostringstream对象。
  • 将ostringstream对象的字符串表示形式赋给字符串输出变量。
  • 显示结果。

示例

#include <iostream> #include <sstream> using namespace std; string solve(int ip) { //using ostringstream ostringstream oss; oss << ip; return oss.str(); } int main() { int ip = 10; string op = solve(ip); cout<< "The input value after addition of 10 is: " << ip + 10 << endl; cout<< "The output value after addition of 10 is: " << op + "10" << endl; return 0; }

输出

The input value after addition of 10 is: 20
The output value after addition of 10 is: 1010

在前面的例子中,我们在输入值中添加了一个整数值10来证明它是一个整数值,并在输出值中添加了一个字符串“10”来证明它是一个字符串值。

使用sprintf

sprintf是C++中的标准库函数,它将格式化的输出发送到字符串str。使用sprintf函数,我们可以将整数转换为字符串。

语法

int ip = <integer value>;
char str[100];
sprintf(str, "%d", ip);
string s = str;

算法

  • 将输入存储在一个整数变量中。
  • 将输入整数变量和字符缓冲区传递给sprintf函数。
  • 将字符缓冲区赋给结果字符串变量。
  • 显示结果。

示例

#include <iostream> using namespace std; string solve(int ip) { char str[100]; sprintf(str, "%d", ip); string s = str; return s; } int main() { int ip = 10; string op = solve(ip); cout<< "The input value after addition of 10 is: " << ip + 10 << endl; cout<< "The output value after addition of 10 is: " << op + "10" << endl; return 0; }

输出

The input value after addition of 10 is: 20
The output value after addition of 10 is: 1010

此示例类似于前面的示例,唯一不同的是转换方法。要使用sprintf,我们不需要导入任何其他库。

结论

我们可能需要在各种情况下将整数转换为字符串,主要是在使用仅支持字符串参数的函数输出计算数据时。我们讨论的第一个方法是最简单的,但它从C++ 11版本开始可用。第二种使用ostringstream的方法需要导入另一个库sstream,而最后一种使用sprintf的方法需要一个辅助字符或字符串缓冲区来将整数值转换为字符串。最快的方法是第一种,但是如果由于编译器过旧而无法使用,则其他两种方法应该可以工作。

更新于:2022年10月19日

浏览量:307

开启你的职业生涯

完成课程获得认证

开始学习
广告