我需要一个C语言函数,他可以判断一个字符串是否为数字型字符串,如果是的话将字符串转化为对应数字
时间: 2023-06-01 10:03:12 浏览: 111
以下是一个示例代码,可以实现将字符串转化为数字型字符串,并判断是否为数字型字符串:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int is_numeric(const char* str) {
int i = 0;
if (str[0] == '-' || str[0] == '+') {
i++;
}
while (str[i] != '\0') {
if (!isdigit(str[i])) {
return 0;
}
i++;
}
return 1;
}
int str_to_int(const char* str) {
int sign = 1;
int result = 0;
int i = 0;
if (str[0] == '-') {
sign = -1;
i++;
} else if (str[0] == '+') {
i++;
}
while (str[i] != '\0') {
result = result * 10 + (str[i] - '0');
i++;
}
return result * sign;
}
int main() {
char str[] = "12345";
if (is_numeric(str)) {
int num = str_to_int(str);
printf("The number is: %d\n", num);
} else {
printf("The string is not numeric.\n");
}
return 0;
}
```
该代码中,`is_numeric`函数用于判断字符串是否为数字型字符串,如果是则返回1,否则返回0。该函数首先判断字符串的第一个字符是否为正负号,如果是则跳过,然后遍历字符串中的每一个字符,如果发现有非数字字符则返回0,否则返回1。
`str_to_int`函数用于将数字型字符串转化为对应数字,并返回。该函数首先判断字符串的第一个字符是否为正负号,如果是则记录符号并跳过,然后遍历字符串中的每一个字符,将每个字符转化为数字并累加到结果中,最后乘上符号并返回。
在`main`函数中,先判断字符串是否为数字型字符串,如果是则调用`str_to_int`函数将其转化为数字并输出,否则输出提示信息。
阅读全文