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的方法需要一个辅助字符或字符串缓冲区来将整数值转换为字符串。最快的方法是第一种,但是如果由于编译器过旧而无法使用,则其他两种方法应该可以工作。