首页 > 解决方案 > 如何判断 C 输入是否为 8 位二进制数

问题描述

我正在编写一个程序,它将二进制值转换为十六进制,反之亦然。

用户应输入一个值,该值将存储在 int 变量中。我需要确定这个用户输入是否是一个八位二进制数,如 10010010、11110000、10101010 等。

我已经编写了一个函数来确定用户输入了多少个字符,但是我没有找到太多关于如何确保用户的输入是 1 或 0 的内容。

这只是我没有看到的简单解决方案吗?

标签: cvalidationinputbinary

解决方案


如果您的程序将用户输入存储在 char 数组(字符串)中,您可以使用strspn从给定字符串中搜索第一次出现的不匹配字符的函数。

#include <stdio.h>
#include <string.h>

int main () {
  const char user_input[] = "101th";
  const char bdigits[] = "01";

  int i = strspn (user_input, bdigits);
  printf("Not a binary digit at position %d.\n",i);
  return 0;
}

推荐阅读