通八洲科技

C++如何将字符串转换为数字?(stoi/stod用法)

日期:2025-12-24 00:00 / 作者:尼克
stoi和stod是C++11起最常用、最简洁的字符串转数字方法,支持自动跳过前导空白、正负号、进制(stoi)和科学计数法(stod),出错时抛异常,比atoi/atof更安全可控。

stoistod 是 C++11 起最常用、最简洁的字符串转数字方法,它们直接处理 std::string,自动跳过前导空白,支持正负号和进制(stoi 可指定),出错时抛异常,比老式 atoi / atof 更安全可控。

stoi:转整数(int)

stoi 把字符串解析为 int 类型。它会忽略开头的空格,读取可选的正负号,然后尽可能多地读取十进制数字(默认),直到遇到非法字符或结尾为止。

stod:转浮点数(double)

stod 用于将字符串转为 double,支持科学计数法(如 "3.14""2e-3""-1.5E+2"),同样跳过前导空格,停在第一个无法识别的字符处。

异常处理与健壮写法

生产代码中不能假设输入一定合法,应捕获异常并做降级处理(如设默认值、记录日志或提示用户)。

其他类似函数(按需选用)

C++ 还提供 stol(long)、stoll(long long)、stoul(unsigned long)、stof(float)等,接口一致,仅返回类型不同。