c++中,如何将字符串型"23"转换成数字23
时间: 2024-09-14 07:04:36 浏览: 44
在C++中,将字符串型"23"转换成数字23可以通过多种方法实现,最常用的方法是使用标准库中的`atoi`函数或者`std::stoi`函数。下面分别介绍这两种方法:
1. 使用`atoi`函数:
`atoi`函数是C语言标准库函数,用于将C风格字符串转换为整数。其原型如下:
```cpp
int atoi(const char *str);
```
使用`atoi`函数时,需要包含头文件`<cstdlib>`(或者在C++中也可以是`<stdlib.h>`),然后将字符串传递给`atoi`函数即可得到整数。
示例代码:
```cpp
#include <iostream>
#include <cstdlib> // 或 #include <stdlib.h>
int main() {
const char* str = "23";
int number = atoi(str);
std::cout << number; // 输出 23
return 0;
}
```
2. 使用`std::stoi`函数:
`std::stoi`函数是C++标准库中的一个函数,用于将字符串转换为整数。其原型如下:
```cpp
int stoi(const std::string &str, std::size_t *idx = 0, int base = 10);
```
使用`std::stoi`函数时,需要包含头文件`<string>`,然后将`std::string`类型的字符串传递给`std::stoi`函数即可得到整数。如果字符串不是有效的整数表示,`std::stoi`会抛出一个`std::invalid_argument`异常;如果整数太大,无法用`int`类型表示,则会抛出`std::out_of_range`异常。
示例代码:
```cpp
#include <iostream>
#include <string>
#include <stdexcept> // 用于异常处理
int main() {
std::string str = "23";
try {
int number = std::stoi(str);
std::cout << number; // 输出 23
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid argument: " << e.what() << '\n';
} catch (const std::out_of_range& e) {
std::cerr << "Out of range: " << e.what() << '\n';
}
return 0;
}
```
阅读全文