c - 如何判断 C 输入是否为 8 位二进制数
问题描述
我正在编写一个程序,它将二进制值转换为十六进制,反之亦然。
用户应输入一个值,该值将存储在 int 变量中。我需要确定这个用户输入是否是一个八位二进制数,如 10010010、11110000、10101010 等。
我已经编写了一个函数来确定用户输入了多少个字符,但是我没有找到太多关于如何确保用户的输入是 1 或 0 的内容。
这只是我没有看到的简单解决方案吗?
解决方案
如果您的程序将用户输入存储在 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;
}
推荐阅读
- reactjs - 模块解析失败:意外的令牌。react-native/index.js "typeof" 运算符
- c# - 使用 unity 和 c# 正确索引 Json
- c - 构建 Anjay 教程代码
- android - 使用android ObjectAnimator旋转和缩放drawable
- sql - 主题访问的基线平均值 (SAS)
- reactjs - 无法访问在 docker 容器中运行的反应应用程序
- three.js - ThreeJS - 未在具有材料的对象上设置边界框
- django - Python正在将换行符插入请求标头
- angular - 无服务器环境中的异步任务
- azure-cosmosdb - Azure Cosmos Graph 在顶点属性中嵌套边顶点