千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > C++ to_string函数详解

C++ to_string函数详解

来源:千锋教育
发布人:xqq
时间: 2023-11-25 12:53:48 1700888028

一、c++ to_string保留小数点后六位

使用to_string函数可以将数字转换为字符串。默认情况下,to_string默认输出6位小数,但这不一定是您想要的。C ++ 11引入了std :: to_string的另一个重载版本,该版本接受一个小数位数参数。


#include 
#include 
using namespace std;
int main() {
    double num = 12.3456789;
    string str1 = to_string(num);
    string str2 = to_string(num).substr(0, 9);
    string str3 = to_string(num).substr(0, to_string(num).find(".", 0)+7);
    cout << "str1: " << str1 << endl;
    cout << "str2: " << str2 << endl;
    cout << "str3: " << str3 << endl;
    return 0;
}

可以看到,str2仅保留小数点后的前九位,而str3将小数点后的数字截取到第七位。

二、c++ to_string补位

to_string不会在数字前面添加前导零。如果您需要添加前导零以使数字看起来更整齐,则可以使用其他一些方法:


#include 
#include 
#include 
using namespace std;
int main() {
    //方法一:使用iomanip setfill和setw操作
    int num1 = 123;
    stringstream ss;
    ss << setw(8) << setfill('0') << num1;
    cout << ss.str() << endl;

    //方法二:使用sprintf函数
    int num2 = 456;
    char buf[10];
    sprintf(buf, "%08d", num2);
    cout << buf << endl;
    return 0;
}

三、string函数作用

使用to_string返回的结果是一个字符串,它也可以使用C ++ STL中的标准string函数进行处理。


#include 
#include 
using namespace std;
int main() {
    double num = 123.456789;
    string str1 = to_string(num);
    string str2 = "Hello World";
    cout << str1.substr(0, 5) << endl; //截取前五个字符
    cout << str2.size() << endl; //获取字符串长度
    return 0;
}

四、c++ to_string函数

to_string是C ++ 11中的标准库函数,它将数字转换为字符串,并可以接受任何数字类型。


#include 
#include 
using namespace std;
int main() {
    int num1 = 123;
    long num2 = 456789;
    float num3 = 3.14f;
    double num4 = 2.7182818;
    string str1 = to_string(num1);
    string str2 = to_string(num2);
    string str3 = to_string(num3);
    string str4 = to_string(num4);
    cout << str1 << endl;
    cout << str2 << endl;
    cout << str3 << endl;
    cout << str4 << endl;
    return 0;
}

五、c++ to_string 限定长度

使用to_string函数转换数字时,如果超出字符串的最大长度,将自动截断。为了确保输出的字符串不会太长,可以使用std :: to_chars,该函数可以指定输出的最大长度。


#include 
#include 
using namespace std;
int main() {
    int num = 123456;
    char buffer[10];
    auto [p, ec] = to_chars(buffer, buffer + 10, num);
    cout.write(buffer, p - buffer) << endl; //最大输出10个字符
    return 0;
}

六、c++ to_string 头文件

to_string函数定义在头文件,因此在使用to_string函数之前需要包含此头文件。


#include 
#include 
using namespace std;
int main() {
    double num = 3.14159;
    string str = to_string(num);
    cout << str << endl;
    return 0;
}

七、c++ to_string函数作用

to_string函数的主要作用是将数字转换为字符串。

八、c++ to_string打印二进制数

to_string还允许指定输出数字的格式,例如二进制。下面的示例显示如何使用to_string将数字转换为二进制字符串。


#include 
#include 
#include 
using namespace std;
int main() {
    int num = 123;
    string str = bitset(num).to_string();
    cout << str << endl; //输出二进制数
    return 0;
}

九、c++ to_string为空

使用to_string函数转换空指针时,将引发std ::bad_alloc异常。


#include 
#include 
using namespace std;
int main() {
    int *ptr = nullptr;
    try {
        string str = to_string(*ptr);
    }
    catch (const std::exception &e) {
        cout << "Exception: " << e.what() << endl;
    }
    return 0;
}

tags: c++to_string
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT