C++将字符/字符串转换为数字类型/整型/浮点型

本文介绍了C++中将字符串转换为整数和浮点数的方法,包括std::stoi、std::stof及C++17引入的std::from_chars函数的使用方式与示例。

将字符串转换为int

std::stoi函数:

格式:std:stoi(str, pos, base);

定义于头文件string中
str:要处理的字符串
pos:要处理的开始位置(若不输入参数,默认从第一位开始)
base:进制数(若不输入参数默认为10进制)

示例:

int main()
{
    std::string str1 = "45";
    std::string str2 = "3.14159";
    std::string str3 = "31337 with words";
    std::string str4 = "words and 2";
 
    int myint1 = std::stoi(str1);
    int myint2 = std::stoi(str2);
    int myint3 = std::stoi(str3);
    // 错误: 'std::invalid_argument'
    // int myint4 = std::stoi(str4);
 
    std::cout << "std::stoi(\"" << str1 << "\") is " << myint1 << '\n';
    std::cout << "std::stoi(\"" << str2 << "\") is " << myint2 << '\n';
    std::cout << "std::stoi(\"" << str3 << "\") is " << myint3 << '\n';
    //std::cout << "std::stoi(\"" << str4 << "\") is " << myint4 << '\n';
}

输出:

std::stoi("45") is 45
std::stoi("3.14159") is 3
std::stoi("31337 with words") is 31337

将字符串转换为浮点型:

std::stof函数:

格式std::stof(str, pos);

定义于头文件string中
str:要处理的字符串
pos:要处理的开始位置(若不输入参数,默认从第一位开始)

将字符转换为数字:

std::from_chars函数(C++17):

格式std::stof(first, last, value, base);

定义于头文件charconv中
first、last:要分析的合法字符范围(const char*)
value:储存输出的参数的对象
base:进制数(默认为10进制)

示例:

#include <iostream>
#include <charconv>
#include <array>
 
int main()
{
    std::array<char, 10> str{"42"};
    int result;
    std::from_chars( str.data(), str.data()+str.size(),result );
    std::cout << result;
    return 0;
}

输出:

42
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值