我有一个 C 程序,用户将在命令行中输入整数或双精度数作为输入。允许使用负数,但我遇到了用户输入以下内容时的问题:
1-1
它只是被解析为一个。我创建了一个函数来测试用户输入是否为有效数字,但我不确定如何捕获这样的实例,或者对于 1+1、1)2 等输入也是如此。
这是我创建的函数:
int check_number(char *userInput) {
int i;
//check each character
for (i = 0; userInput[i] != '\0'; i++){
if (isalpha(userInput[i])){
printf("Invalid input.\n");
return -1;
}
}
return 0;
}
我应该怎么做才能在用户输入中间不允许任何其他随机字符(除了字母,因为那些已经用 isalpha 测试过)?