c语言不用使用库函数atoi,编写一个函数my_atoi(),功能和atoi是一样的
时间: 2024-10-02 20:02:36 浏览: 7
在C语言中,`atoi` 是标准库函数 `stdlib.h` 中的一部分,用于将字符串转换成整数。如果你想要自定义一个类似的功能,可以编写一个名为 `my_atoi()` 的函数,它会逐字符解析输入的字符串并返回相应的整数值。下面是一个简单的实现思路:
```c
#include <stdio.h>
#include <ctype.h>
int my_atoi(const char* str) {
int result = 0;
bool isPositive = true; // 默认正数,后续处理负数情况
while (*str != '\0') { // 遍历字符串直到遇到结束符
if (!isdigit(*str)) { // 如果不是数字字符,直接跳过
if (*str == '-') { // 如果遇到 '-', 设置为负数标志,但不改变结果
isPositive = false;
} else {
break;
}
} else { // 否则是数字字符
result = result * 10 + (*str - '0'); // 更新结果
}
str++; // 移动到下一个字符
}
return isPositive ? result : -result; // 根据正负数标志返回最终结果
}
// 示例用法
int main() {
const char* input = "12345";
int converted = my_atoi(input);
printf("The converted integer is %d\n", converted);
return 0;
}
```
这个 `my_atoi` 函数假设输入的是有效的十进制字符串。如果需要处理更复杂的边界情况,比如空字符串、前导空白字符或者非法字符,可以在函数里添加适当的错误检查。