C++: string转int

总是要用,总是要忘,总是要重新百度。把我习惯用的写下来233

 

string s = "12"; 
int a = atoi(s.c_str());

C++中,将`std::string`类型换为`int`类型有以下几种方法: ### 使用`std::stoi`函数 `stoi`即`string to int`,该函数是C++11引入的标准库函数,使用起来较为方便,但如果字符串无法换为有效的整数,会抛出`std::invalid_argument`或`std::out_of_range`异常。 ```cpp #include <iostream> #include <string> int main() { std::string strNumber = "12345"; int number = std::stoi(strNumber); std::cout << "换后的整数:" << number << std::endl; return 0; } ``` 不过,若字符串包含非数字字符,使用`stoi`会报异常,例如: ```cpp #include <iostream> #include <string> int main() { std::string str = "12f"; try { int nStoi = stoi(str); } catch (const std::invalid_argument& e) { std::cerr << "换失败: " << e.what() << std::endl; } return 0; } ``` ### 使用自定义模板函数 可以自定义命名空间`STRING`,通过`std::ostringstream`和`std::istringstream`实现换。 ```cpp #include <iostream> #include <sstream> #include <string> namespace STRING { template<typename T> std::string to_string(const T& t) { std::ostringstream oss; oss << t; return oss.str(); } template<typename T> T from_string(const std::string& str) { T t; std::istringstream iss(str); iss >> t; return t; } } int main() { std::string strInt = "12"; int nInt = STRING::from_string<int>(strInt); std::cout << "换后的整数: " << nInt << std::endl; return 0; } ``` ### 使用`std::atoi`函数 虽然站内引用未详细给出此函数示例,但`std::atoi`是C风格的函数,它接受一个以空字符结尾的字符串(`const char*`)作为参数,可通过`std::string`的`c_str()`方法将其换为`const char*`类型。 ```cpp #include <iostream> #include <string> int main() { std::string str = "123"; int num = std::atoi(str.c_str()); std::cout << "换后的整数: " << num << std::endl; return 0; } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值