使用 C 中的位掩码和位运算符检查字符是否为 ASCII

2024-01-09

我需要编写程序来检查标准输入中的每个单独的字符,看看它是否是 ASCII 字符。我知道它需要检查的是第 8 位(代码中的第 7 位,如果我没记错的话)是否为 0,因为 ASCII 只使用 7 位,但我很难弄清楚如何准确地让它检查具体位。这就是我在撰写本文时所拥有的。

#include <stdio.h>

#define MASK 7

int     main(void)
{

auto    char    inChar;

    do
    {
    inChar = getchar();

    // Breaks the do-while loop if it detects End of File
    if (inChar == EOF)
        {
        break;
        }

    printf("%c", inChar);

    if ( inChar == (0 & MASK))
        {
        printf("Not an ASCII Character.\n");
        }

    }while(1);

    puts("\n");

    return 0;
}

我知道我还没有正确实现编码器来检查每个字符值,但稍后我会担心这一点。现在我只需要帮助让它检查变量中的特定位。

另外,这是我第一次在这里提问,所以请原谅我的问题格式不正确。


From ctype.h http://www.opensource.apple.com/source/Libc/Libc-262/include/ctype.h:

#define isascii(c)  ((c & ~0x7F) == 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C 中的位掩码和位运算符检查字符是否为 ASCII 的相关文章

  • 电话号码的正则表达式,不允许全零

    需要您的正则表达式帮助 我当前的正则表达式是 d 8 最小长度为 8 不允许包含字母 特殊字符和空格 我还想禁止全零 如 00000000 Thanks 该模式应该可以满足您的需求 0 d 8 The 0 部分是负前瞻 将阻止仅输入零 Ex
  • 为什么 VB.NET 和 C# 中针对值检查 null 存在差异?

    In VB NET http en wikipedia org wiki Visual Basic NET有时候是这样的 Dim x As System Nullable Of Decimal Nothing Dim y As System
  • 使用API​​隐藏程序标题栏

    它可以使用 c 和 windows api 删除窗口控制台标题栏 如果是的话如何 请 这个简单的应用程序隐藏并显示其所在控制台的标题栏 它会立即将控制台标题更改为 guid 以查找窗口句柄 然后 它使用 ToggleTitleBar 使用找
  • 用户控件内所有控件均为空

    我有一个 UserControl 它使用 UserControl 以及其他控件 In the ascx文件我有以下代码
  • 静态类变量与外部变量相同,只是具有类作用域吗?

    在我看来 静态类变量与外部变量相同 因为你只需要declare它在static int x extern int x语句 并在其他地方实际定义它 通常在 cpp 文件中 静态类变量 h file class Foo static int x
  • 找到的程序集的清单定义与程序集引用不匹配

    我试图在 C Windows 窗体应用程序 Visual Studio 2005 中运行一些单元测试 但出现以下错误 System IO FileLoadException 无法加载文件或程序集 实用程序 版本 1 2 0 200 文化 中
  • 如何在不实例化一个类的情况下检查它是否继承了另一个类? [复制]

    这个问题在这里已经有答案了 假设我有一个如下所示的类 class Derived some inheritance stuff here 我想在我的代码中检查类似的内容 Derived is SomeType 但看起来像is运算符需要 De
  • 如何在编译C代码时禁用警告?

    我正在使用 32 位 Fedora 14 系统 我正在使用编译我的源代码gcc 有谁知道如何在编译c代码时禁用警告 EDIT 是的 我知道 最好的办法是修复这些警告以避免任何未定义 未知的行为 但目前在这里 我第一次编写了巨大的代码 并且在
  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • 如何在 Asp.net Gridview 列中添加复选框单击事件

    我在 asp 中有一个 gridview 其中我添加了第一列作为复选框列 现在我想选择此列并获取该行的 id 值 但我不知道该怎么做 这是我的 Aspx 代码
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • 我可以仅在少数情况下关闭模拟吗

    我有一个始终使用模拟的应用程序 但是 当用户以管理员身份登录时 一些操作需要他们写入服务器本身 现在 如果这些用户在实际服务器上没有权限 有些用户没有 则不会让他们写入 我想做的是关闭几个命令的模拟 有没有办法做这样的事情 using Ho
  • 格式化货币

    在下面的示例中 逗号是小数点分隔符 我有这个 125456 89 我想要这个 125 456 89 其他示例 23456789 89 gt 23 456 789 89 Thanks 看看这个例子 double value 12345 678
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • 将非算术类型作为参数传递给 cmath 函数是否有效?

    给定以下用户定义类型S具有转换功能double struct S operator double return 1 0 以及以下调用cmath http en cppreference com w cpp header cmath使用类型的
  • 使用 foreach 循环和 XmlNodeList C# 将新节点附加到节点列表

    目前我处理的是这样的XML类型 XML FILE http 20drive google com open id 0By5BxgNi9eGcRldxcEZNU0FDTzQ 参考XML文件 我想检查一个节点 如果找不到该节点 我必须将该节点附
  • 如何访问窗口?

    我正在尝试使用其句柄访问特定窗口 即System IntPtr value Getting the process of Visual Studio program var process Process GetProcessesByNam
  • 使用 Chrome 和 Selenium 设置 LocalStorage

    我正在尝试使用 OpenQA Selenium 和 Chrome 设置本地存储键和值 我认为这相当微不足道 但我似乎无法让它发挥作用 我对 C 很陌生 所以我可能错过了一些东西 无论如何 我有这个功能 public static void
  • g++ C++0x 枚举类编译器警告

    我一直在将可怕的 C 类型安全伪枚举重构为新的 C 0x 类型安全枚举 因为它们是way更具可读性 不管怎样 我在导出的类中使用它们 所以我明确地将它们标记为导出 enum class attribute visibility defaul
  • c# 模拟 IFormFile CopyToAsync() 方法

    我正在对一个异步函数进行单元测试 该函数将 IFormFile 列表转换为我自己的任意数据库文件类列表 将文件数据转换为字节数组的方法是 internal async Task

随机推荐

  • 在php中导出为epub格式[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道可以创建 导出 ePub 文件的 php 类吗 我有一本存储在 mysql 数据库中的书 我希望
  • Google Drive API v3 更改文件权限并获取可公开共享的链接 (Python)

    我正在尝试使用 Google Drive API v3 和 Python 3 自动上传文件 使它们 公开 并获得一个可共享的链接 任何人 无论是否登录 Google 帐户 都可以查看和下载 但不能修改 我很接近 但不太明白 观察我的代码 它
  • 如何使用 CMake 在调试器中将 follow-fork-mode 设置为子模式

    我有Linux系统 我写程序使用克利翁集成开发环境其中使用CMake 我的计划中有一部分我想要调试子进程我从这个论坛上阅读了一些主题 但我仍然不知道如何或在哪里可以打开此功能 gdb 调试 fork 后的子进程 配置了 follow for
  • 从 XAML/滑块模板获取滑块的拇指位置

    如何获取滑块在样式中的拇指位置 我想显示拇指位置的实际值 这可以通过根据该值更改以下文本块的宽度来实现 但是如何获得拇指的位置呢
  • 无法修复错误:此配置部分不能在此路径中使用

    我收到错误 该配置节不能在此路径中使用 有时候是这样的 当该部分被锁定在父级别时 由于下面给出的第 27 行的配置条目 我尝试通过解锁该部分来修复它网络套接字在 IIS 的配置编辑器中 但它不起作用 当我删除第 27 行后 该服务就可以正常
  • validateDOMNesting(...):

    我在用着Material UI在我的项目中 我在控制台中收到警告 Warning validateDOMNesting
  • 为什么vim地图功能中chrome打不开html?

    我已经在 vimrc 文件中映射了 F6 和 F7 nnoremap
  • 如何附加到录制的 MPEG4 AAC 文件?

    我正在 iPhone 上录制音频 使用的是AVAudioRecorder具有以下设置 NSMutableDictionary recordSettings NSDictionary alloc initWithObjectsAndKeys
  • 将 WebSecurityConfigurerAdapter 与 Spring OAuth2 和 user-info-uri 结合使用

    我创建了一个授权服务 如下所示 SpringBootApplication EnableAuthorizationServer public class AuthorizationApplication 有了这个application pr
  • Hilt - CoroutineDispatcher 上缺少绑定

    我正在重构我的应用程序Hilt作为依赖注入管理器 我有一个构造函数可注入类 构造函数中有两个参数 其中一个参数是CoroutineDispatcher class SubscriptionsLocalDataSource Inject co
  • Bitbucket 要求输入密码来克隆存储库

    我正在从一台新计算机克隆 bitbucket 上的存储库 但它要求我输入密码 我的 bitbucket 密码不起作用 克隆 GitHub 上的存储库效果很好 任何建议将不胜感激 这是我使用 Bitbucket 密码后不断看到的错误 remo
  • R网状无法找到已安装的python库

    我正在尝试在 R 中使用 Reticulate 但在安装包时遇到问题 特别是psycopg2但我也尝试过安装twisted结果相同 我加载后reticulate在 R 中 我仔细检查以确保我的包已安装 gt conda install en
  • 将 Perl 代码转换为 PHP

    我需要将以下 perl 函数转换为 php pack SSA12AC4L id loc name ar split get gt getIP time 60 60 我在 PHP 中使用以下代码 用于测试 echo pack SSA12AC4
  • 将一个值分解为 2 的幂

    我需要实现一个函数 使用 java 将一个值分解为 2 的幂 例如 14 8 4 2 我需要找到两个值被分解的幂 对于上面的示例 我需要 2 3 1 作为输出 我该如何实现呢 利用 Java 使用的二进制表示形式 我不知道你想要 2 的幂采
  • 如何在 XDocument 元素的名称中使用“:”字符?

    我正在使用 XDocument 创建一个 RSS 代码如下 var document new XDocument new XDeclaration 1 0 utf 8 null new XElement rss new XElement c
  • 在哪里可以查看 Google Analytics iOS 崩溃日志?

    在 Google Analytics Native SDK for iOS v2 Beta 中 我在文档中找到了以下行 Optional automatically track uncaught exceptions with Google
  • Github GraphQL 搜索与过滤

    根据我有限的搜索 GraphQL 似乎只能支持等值过滤 所以 是否可以使用以下过滤条件进行Github GraphQL搜索 星星 gt 10 货叉 gt 3 总提交 gt 5 总问题 gt 1 未决问题 尺寸 gt 2k 分数 gt 5 上
  • Android DatePicker 没有星期日

    我正在使用日期选择器来选择特定日期 日期选择器不应允许选择星期日 到目前为止 我正在检测选择后的星期日并显示一条消息 但如果日期选择器不允许星期日 那就更好了 有没有办法做到这一点 检测星期日的代码 private static class
  • 使用 angular2-jwt 的 Angular 6

    将我的应用程序从 Angular 4 迁移到 Angular 6 最新版本 后 我的 Auth 服务中出现了一个非常奇怪的错误 具体来说 当我尝试执行以下操作时 angular2 jwt 包会导致致命错误 serve or build 该应
  • 使用 C 中的位掩码和位运算符检查字符是否为 ASCII

    我需要编写程序来检查标准输入中的每个单独的字符 看看它是否是 ASCII 字符 我知道它需要检查的是第 8 位 代码中的第 7 位 如果我没记错的话 是否为 0 因为 ASCII 只使用 7 位 但我很难弄清楚如何准确地让它检查具体位 这就