请实现类似atoi函数,把字符串“123456”转换成数值123456 int atoi(char *str)
时间: 2024-10-22 10:19:07 浏览: 19
实现一个简单的 atoi 函数可以将字符串转换为整数,通常会涉及到遍历字符串、逐字符处理以及处理正负数的情况。以下是一个基本的 C 语言版本的 atoi 实现:
```c
#include <stdio.h>
#include <ctype.h> // 使用 isdigit 函数
int atoi(const char* str) {
int result = 0;
bool negative = false;
if (*str == '-') { // 检查前缀是否为负号
negative = true;
str++; // 移动指针到下一个字符
}
while (*str != '\0') { // 遍历字符串直到遇到结束符
if (!isdigit(*str)) { // 如果不是数字字符,则返回结果
break;
}
result = (result * 10) + (*str - '0'); // 将当前字符转换为数字并累加到结果
str++;
}
return negative ? -result : result; // 根据原字符串前缀的负号判断最终结果
}
// 示例
int main() {
const char* str = "123456";
int num = atoi(str);
printf("转换后的整数是:%d\n", num); // 输出: 转换后的整数是:123456
return 0;
}
```
阅读全文