📜  整数到字符串 c++ (1)

📅  最后修改于: 2023-12-03 15:10:23.044000             🧑  作者: Mango

将整数转换为字符串(C++)

在C++中,将整数转换为字符串的方法有很多。下面是一些常见的方法:

方法一:使用stringstream
#include <sstream>
#include <string>

std::string intToStr(int n) {
    std::stringstream ss;
    ss << n;
    return ss.str();
}

这个方法使用了 std::stringstream 类来将整数转换为字符串。首先创建一个 stringstream 对象 ss,然后将整数写入流中,最后使用 str() 方法将流中的内容提取出来并返回。这个方法的好处是可以很方便地使用流操作符 <<,例如可以像这样将多个整数组合成一个字符串:

std::string intToStr(int a, int b, int c) {
    std::stringstream ss;
    ss << a << "-" << b << "-" << c;
    return ss.str();
}
方法二:使用sprintf函数
#include <cstdio>
#include <string>

std::string intToStr(int n) {
    char buf[32];
    std::sprintf(buf, "%d", n);
    return std::string(buf);
}

这个方法使用了 sprintf 函数来将整数格式化为字符串。sprintf 函数的第一个参数是一个字符数组,表示格式化后的字符串,第二个参数是一个格式化字符串,用来指定如何将整数转换为字符串。在这个例子中,格式化字符串为 "%d",表示将整数以十进制数的形式输出。sprintf 函数最后返回的是字符数组,需要将其转换为 std::string 类型。

方法三:使用to_string函数(C++ 11)
#include <string>

std::string intToStr(int n) {
    return std::to_string(n);
}

这个方法使用了 C++ 11 中引入的 to_string 函数。它的作用很简单,就是将一个整数转换为字符串。这个函数不需要额外的头文件,直接调用即可。

方法四:手写实现

如果不想使用 C++ 标准库中的函数,也可以手写一个将整数转换为字符串的函数。一个比较简单的思路是不断将整数除以10取余数,将余数转换为字符加入字符串中,然后将整数除以10,直到整数为0为止。需要注意的是,低位的数字应该在字符串的前面,高位的数字应该在字符串的后面。

以下是一个手写实现的示例代码:

#include <string>

std::string intToStr(int n) {
    std::string ans;
    while (n > 0) {
        char c = '0' + n % 10;
        ans = c + ans;
        n /= 10;
    }
    if (ans.empty()) ans = "0";
    return ans;
}

以上就是一些将整数转换为字符串的常见方法,根据自己的需要选择合适的方法即可。