c - 有没有更好的方法来确定多个字符范围?

标签 c range ascii

我目前正在用 C 编写代码,它从整个 ASCII 可用字符中选择符号和数字。 作为程序员的初学者,我通常会这样做

if ((i > 25 && i < 50) || (i > 100 && i < 200)) { contents } 

对于变量i在25~50, 100~200(不含)之间满足条件。

如果我想设置多个范围,例如 32~64(! to @) 和 91~96([ to `) 和 123~126( { to ~) 那么会有更好的(意味着更短或更简单的代码)还是我应该坚持这种方法,像上面的代码一样继续添加每个范围?

最佳答案

对于您的具体情况, <ctype.h> collection of functions会做

if (isprint(i) && !isalpha(i))

额外的好处:它甚至可以在非 ASCII 系统上运行。

关于c - 有没有更好的方法来确定多个字符范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38342920/

相关文章:

c - 为什么在使用 malloc 后无法在此函数之外访问指针?

vba - 如何在不使用循环的情况下返回 VBA 中的单元格区域?

java - Dr.Java 与 ASCII 显示相关

python - 在 Python 中对两个十六进制字符串进行异或 - 哪种方法是正确的?

java - 在 Java 中将 UTF8 转换为 ASCII

c - execv 不适用于 "execv("/bin/echo", ["echo","$PATH"] )?

c - MPI_Reduce 不将结果传输到根进程

c++ - '从 some_type** 到 const some_type** 的无效转换'

ios - 如何将 Range<String.Index> 转换为 NSRange?

sql - 如何在 sql 中选择前 50 到 100 个返回(查询)行?