c语言如何不使用atoi函数将数字字符串转化为一个整数
时间: 2023-12-30 22:02:07 浏览: 103
字符串转换整数 使用c#实现MyStoi函数,用于将字符串转换为整数
可以使用循环遍历字符串的每一位,将每一位的字符转化为数字,然后根据每一位的权值相加得到整数。
下面是一个简单的示例代码:
```
#include <stdio.h>
int strToInt(char* str) {
int result = 0;
int i = 0;
int sign = 1;
// 判断正负号
if (str[0] == '-') {
sign = -1;
i++;
}
// 遍历字符串
while (str[i] != '\0') {
// 将字符转化为数字
int digit = str[i] - '0';
// 判断字符是否为数字
if (digit >= 0 && digit <= 9) {
result = result * 10 + digit;
} else {
printf("输入的字符串不是数字!\n");
return 0;
}
i++;
}
return sign * result;
}
int main() {
char str[100];
printf("请输入一个数字字符串: ");
scanf("%s", str);
int num = strToInt(str);
printf("转化后的整数为: %d\n", num);
return 0;
}
```
需要注意的是,该代码没有对输入的字符串进行越界检查,如果输入的字符串超出了数组的范围,可能会导致程序崩溃。在实际应用中需要对输入的字符串进行安全检查。
阅读全文