当前位置:首页C语言 > 正文

C语言用scanf来判断键盘输入数据类型

作者:野牛程序员:2024-06-17 11:06:43C语言阅读 2281
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;
}
  1. 从标准输入读取字符串形式的数据。

  2. 使用isInteger函数判断字符串是否为整数。

  3. 使用isFloat函数判断字符串是否为浮点数。

  4. 根据判断结果,进行相应的转换和输出。

isIntegerisFloat函数通过检查字符串中的字符是否符合整数和浮点数的格式来判断数据类型。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • C语言
  • 最新推荐

    热门点击