自己封装函数实现atoi函数
时间: 2023-07-25 07:36:04 浏览: 84
好的,我可以帮你封装一个函数来实现 `atoi` 函数的功能。`atoi` 函数可以将字符串转换为整型数,具体实现如下:
```c
#include <stdio.h>
int my_atoi(const char* str) {
int res = 0; // 存储结果
int sign = 1; // 符号位,默认为正数
// 跳过字符串前面的空格
while (*str == ' ') {
++str;
}
// 判断符号位
if (*str == '+' || *str == '-') {
sign = (*str++ == '+') ? 1 : -1;
}
// 转换数字字符为整型数
while (*str >= '0' && *str <= '9') {
res = res * 10 + (*str++ - '0');
}
return sign * res;
}
int main() {
char str1[] = "1234";
char str2[] = "-5678";
char str3[] = " 90 ";
char str4[] = "hello";
printf("%d\n", my_atoi(str1)); // 输出: 1234
printf("%d\n", my_atoi(str2)); // 输出: -5678
printf("%d\n", my_atoi(str3)); // 输出: 90
printf("%d\n", my_atoi(str4)); // 输出: 0
return 0;
}
```
在这个实现中,我们首先跳过字符串前面的空格,然后判断符号位,最后将数字字符转换为整型数。如果输入的字符串不是数字字符串,则返回0。
阅读全文