自定义函数MyAtoI,实现整数字符串转换为整数输出C语言
时间: 2024-12-14 16:20:08 浏览: 7
在C语言中,你可以创建一个自定义函数`MyAtoI`来将整数字符串转换为整数。下面是一个简单的示例,它使用了标准库中的`atoi()`函数作为基础,但由于`atoi()`不是安全的,因为它不会处理无效输入,所以这里我们增加了一些错误检查:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h> // 添加这个头文件来使用布尔类型
// 自定义整数字符串转换函数
int MyAtoI(const char* str) {
int num = 0;
bool negative = false; // 标记是否为负数
// 首先检查输入是否为非空
if (str == NULL || *str == '\0') {
printf("Invalid input: String is empty.\n");
return -1; // 返回错误码
}
// 检查第一个字符是否为正负号
if (*str == '-' || *str == '+') {
negative = (*str == '-');
str++; // 移动到数字部分
}
// 遍历字符串并逐位累加
while (*str >= '0' && *str <= '9') {
num = num * 10 + (*str - '0');
str++;
}
// 如果输入包含非数字字符,在此返回错误
if (*str != '\0') {
printf("Invalid input: Non-digit characters found.\n");
return -1;
}
// 如果原始字符串有负号,则返回负数
return negative ? -num : num;
}
int main() {
char str[] = "123";
int result = MyAtoI(str);
if (result != -1) {
printf("Converted string to integer: %d\n", result);
}
return 0;
}
阅读全文