我需要一个C语言函数,他可以将一个数字型字符串转化为对应数字
时间: 2023-05-31 13:06:25 浏览: 60
以下是一个将数字型字符串转化为对应数字的C语言函数:
```c
#include <stdio.h>
#include <stdlib.h>
int strToNum(char* str) {
int num = 0;
int sign = 1;
if (*str == '-') {
sign = -1;
str++;
}
while (*str != 0) {
if (*str >= '0' && *str <= '9') {
num = num * 10 + (*str - '0');
}
else {
printf("Error: Non-digit character detected in input string.\n");
exit(1);
}
str++;
}
return num * sign;
}
```
该函数的输入为一个指向数字型字符串的指针,输出为对应数字。若输入字符串中包含非数字字符,则会输出错误信息并停止程序运行。
该函数的实现过程为:首先判断字符串中是否有负号,如果有则将符号保存下来并将指针向后移动一位。然后循环遍历字符串中每一个字符,如果是数字则将其转化为对应数字并累加到结果中,如果不是数字则输出错误信息。最后将结果乘以符号并返回即可。
示例代码:
```c
int main() {
char str[] = "-12345";
int num = strToNum(str);
printf("%d\n", num); // 输出:-12345
return 0;
}
```