设计一个函数,以字符指针为参数,判断一个字符串是否为纯数字串,若是则返回其十进制值,否则返回-1
时间: 2024-12-28 22:30:25 浏览: 8
为了设计这个函数,我们可以遍历输入的字符指针所指向的字符串,检查每个字符是否都是数字。如果是,则累加对应的数值;如果不是数字或遇到空格等非数字字符,停止计算并返回当前累计的值(如果已经累计了)或-1表示不是纯数字串。
这是一个简单的C语言实现:
```c
#include <stdio.h>
#include <ctype.h>
int isNumericString(char* str) {
int decimal_value = 0; // 初始化十进制值
while (*str != '\0') { // 遍历字符串直到结束
if (isdigit(*str)) { // 如果字符是数字
decimal_value *= 10; // 将值左移一位以便加新数字
decimal_value += *str - '0'; // 加上当前数字
} else if (*str != ' ') { // 忽略空格,但其他非数字字符中断
return -1;
}
str++; // 移动到下一个字符
}
return decimal_value; // 如果遍历完字符串且只有数字,返回十进制值
}
int main() {
char test_string[] = "12345";
printf("Is %s a numeric string? Value: %d\n", test_string, isNumericString(test_string));
char nonnumeric_string[] = "12a3b4";
printf("Is %s a numeric string? Value: %d\n", nonnumeric_string, isNumericString(nonnumeric_string));
return 0;
}
```
阅读全文