有没有更好的方法来确定多个角色范围?

Kag*_*min 8 c ascii range

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

if ((i > 25 && i < 50) || (i > 100 && i < 200)) { contents } 
Run Code Online (Sandbox Code Playgroud)

对于变量i在25~50之间,100~200之间(不包括)以适应条件.

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

a3f*_*a3f 14

对于您的特定情况,<ctype.h>函数集合可以

if (isprint(i) && !isalpha(i))
Run Code Online (Sandbox Code Playgroud)

额外奖励:它甚至适用于非ascii系统.

  • 小心,这些是依赖于语言环境的,可能是也可能不是实际需要的(例如,如果我正在解析编程语言,通常我不希望它依赖于语言环境).OTOH他们在"C"语言环境中按预期工作,这是你应该使用的唯一一个. (6认同)