编写代码实现输入一个数字的字符串,返回对应整数,要求不用atoi等库函数。 原型:int expr(const char *str); 如:expr("1") 预期返回值为 1
时间: 2024-02-16 13:05:24 浏览: 71
表达式代码,可以输入相关的字符串计算出结果
好的,这是一个将数字字符串转化为整数的问题,以下是一种实现方法:
```c
int expr(const char *str) {
int i = 0;
int num = 0;
int sign = 1;
if (str[0] == '-') {
sign = -1;
i++;
}
while (str[i] != '\0') {
num = num * 10 + (str[i] - '0');
i++;
}
return sign * num;
}
```
这个函数的实现思路是,首先判断字符串的符号,如果是负数则记录符号,并将索引 i 加 1。然后遍历字符串中的每一个字符,将其转换为数字,并将其累加到 num 中,最后返回 num 乘以符号即可。
需要注意的是,这个函数没有对输入的字符串做任何格式检查,如果输入的字符串不是一个有效的数字字符串,可能会导致不可预料的错误。
阅读全文