检查字母是否在“j”和“p”之间的条件

VAS*_*174 1 c

代码应该接受一个字符,并且应该检查它是否在“j”和“p”之间。

如果它在 'j' 和 'p' 之间,则应打印yes,否则应打印no

我尝试过对此做一些事情,但我得到的唯一想法是:

if (a=='j' || a=='k' || a=='k' || a=='l' || a=='m' || a=='n' || a=='o' || a=='p')
{
   printf("YES");
} 
else
{
   printf("NO");
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*awn 5

您可以使用如下函数来避免所有替代测试strchr()

if (strchr("jklmnop", a)) {
    puts("YES");
} else {
   puts("NO");
}
Run Code Online (Sandbox Code Playgroud)

显而易见的方法是做类似的事情

if (a >= 'j' && a <= 'p') {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但如果你想编写可移植的代码,那就有问题了。

C标准只要求字符'0'必须'9'连续且按顺序出现。如果您遵循 at 标准,则不应假设'j'through一起出现并且可以与一对and测试'p'一起使用。如果您添加额外的资格(例如需要 ASCII 兼容字符集),那就是另一回事了。>=<=

  • @12431234123412341234123 是的,这就是我通常编写代码来检查一个字符是否是一个小集合之一的方式。您是否鄙视 One True Brace 风格?异教徒。 (3认同)
  • @12431234123412341234123 有几种缩进样式(请阅读:https://en.wikipedia.org/wiki/Indentation_style#Variant:_1TBS_(OTBS)),哪种缩进样式可怕或不可怕只是品味问题。 (3认同)
  • @12431234123412341234123:你应该停止对大括号风格的批评;它不适合评论,无论你的信仰如何,它都是一个观点问题,除非你有科学研究证明人类在其中一个或另一个方面或多或少会犯错误,或者证明其他可测量的客观影响。 (3认同)
  • @12431234123412341234123 告诉我们有数以百万计的程序员使用 OTB 缩进样式。就我个人而言,我也不喜欢 OTB 风格,但正如我之前所写,这是一个品味问题。 (2认同)