我需要一个C语言函数,他可以判断一个字符串是否为数字型字符串,如果是的话将字符串转化为对应数字
时间: 2023-06-01 20:03:11 浏览: 64
判断一个字符串或字符串中的一个字符是否为数字类型
以下是一个可用的函数:
```c
#include <stdlib.h>
#include <stdbool.h>
bool isNumeric(char* str, int* num) {
bool isNegative = false;
int i = 0;
if (str[0] == '-') { // 处理负数情况
isNegative = true;
i++;
}
*num = 0;
while (str[i] != '\0') {
if (str[i] < '0' || str[i] > '9') { // 如果不是数字
return false;
}
*num = (*num * 10) + (str[i] - '0'); // 将字符转化为数字
i++;
}
if (isNegative) { // 如果是负数
*num = -*num;
}
return true;
}
```
使用方法:
```c
int main() {
char* str1 = "123";
char* str2 = "-456";
char* str3 = "abc";
int num1, num2, num3;
if (isNumeric(str1, &num1)) {
printf("%d\n", num1);
} else {
printf("invalid input\n");
}
if (isNumeric(str2, &num2)) {
printf("%d\n", num2);
} else {
printf("invalid input\n");
}
if (isNumeric(str3, &num3)) {
printf("%d\n", num3);
} else {
printf("invalid input\n");
}
return 0;
}
```
输出结果:
```
123
-456
invalid input
```
阅读全文