C语言用scanf来判断键盘输入数据类型
作者:野牛程序员:2024-06-17 11:06:43C语言阅读 3123
C语言用scanf来判断键盘输入数据类型
在C语言中,scanf函数用于从标准输入读取数据。scanf可以指定不同的数据类型格式符,但不能直接判断输入的数据类型。一般的方法是先以字符串形式读取输入,然后通过其他函数进行数据类型的判断和转换。
以下是一个示例,展示如何用scanf读取输入并判断其数据类型:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
// 判断字符串是否为整数
int isInteger(char *str) {
int i = 0;
if (str[0] == '-' || str[0] == '+') {
i = 1;
}
for (; str[i] != '\0'; i++) {
if (!isdigit(str[i])) {
return 0;
}
}
return 1;
}
// 判断字符串是否为浮点数
int isFloat(char *str) {
int i = 0, dotCount = 0;
if (str[0] == '-' || str[0] == '+') {
i = 1;
}
for (; str[i] != '\0'; i++) {
if (str[i] == '.') {
dotCount++;
} else if (!isdigit(str[i])) {
return 0;
}
if (dotCount > 1) {
return 0;
}
}
return dotCount == 1;
}
int main() {
char input[100];
printf("请输入数据: ");
scanf("%s", input);
if (isInteger(input)) {
printf("输入的是整数: %d\n", atoi(input));
} else if (isFloat(input)) {
printf("输入的是浮点数: %f\n", atof(input));
} else {
printf("输入的不是数字\n");
}
return 0;
}从标准输入读取字符串形式的数据。
使用
isInteger函数判断字符串是否为整数。使用
isFloat函数判断字符串是否为浮点数。根据判断结果,进行相应的转换和输出。
isInteger和isFloat函数通过检查字符串中的字符是否符合整数和浮点数的格式来判断数据类型。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:什么是编程思维?
- 下一篇:python 可变数据类型和不可变数据类型详解
