请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234",则函数把它转换为整数值 -1234。
时间: 2024-05-07 07:21:29 浏览: 79
可以按照以下思路来实现该函数:
1. 首先判断数字字符串的符号,如果是负号则记录下来,并将字符串指针后移一位;
2. 从字符串的第一个非符号字符开始,逐个读取每一位数字,并将其累加到结果中;
3. 如果字符串已经读取完毕,则返回结果;
4. 如果字符串中有非数字字符,则返回错误提示。
下面是一个示例代码实现:
```c
#include <stdio.h>
int fun(char* str) {
int result = 0; // 初始化结果
int sign = 1; // 符号标记,默认为正数
if (*str == '-') { // 判断符号
sign = -1;
str++;
}
while (*str != '\0') {
if (*str >= '0' && *str <= '9') { // 判断字符是否为数字
result = result * 10 + (*str - '0'); // 将字符转为数字并累加到结果中
str++;
} else {
printf("Error: invalid character '%c' in string.\n", *str);
return 0; // 返回错误提示
}
}
return sign * result; // 返回带符号的结果
}
int main() {
char str[] = "-1234";
int result = fun(str);
printf("%d\n", result);
return 0;
}
```
输出结果为:
```
-1234
```
阅读全文