用c++代码实现atoi函数
时间: 2024-06-15 16:04:36 浏览: 102
用C实现atoi函数
4星 · 用户满意度95%
当我们需要将字符串转换为整数时,可以使用C++中的atoi函数。但是需要注意的是,C++标准库中并没有提供atoi函数,而是提供了更加安全和灵活的字符串转换函数stoi。
下面是使用C++代码实现atoi函数的示例:
```cpp
#include <iostream>
#include <string>
int atoi(const char* str) {
int result = 0;
int sign = 1;
int i = 0;
// 处理空格
while (str[i] == ' ') {
i++;
}
// 处理正负号
if (str[i] == '-' || str[i] == '+') {
sign = (str[i++] == '-') ? -1 : 1;
}
// 转换数字
while (str[i] >= '0' && str[i] <= '9') {
if (result > INT_MAX / 10 || (result == INT_MAX / 10 && str[i] - '0' > INT_MAX % 10)) {
// 处理溢出情况
return (sign == -1) ? INT_MIN : INT_MAX;
}
result = result * 10 + (str[i++] - '0');
}
return result * sign;
}
int main() {
const char* str = "12345";
int num = atoi(str);
std::cout << num << std::endl;
return 0;
}
```
在上面的代码中,我们首先处理了字符串中的空格和正负号。然后,我们使用一个循环将字符串中的数字字符转换为整数,并在转换过程中判断是否会发生溢出。
需要注意的是,上述代码只是一个简单的实现示例,没有处理所有可能的输入情况。在实际使用中,建议使用C++标准库中的stoi函数或者其他更加健壮的字符串转换函数来进行字符串到整数的转换。
阅读全文