"a" <= 字符串[i] 是什么意思?

What does 'a' <= string[i] mean?

本文关键字:是什么 意思 字符串 lt      更新时间:2023-10-16

我正在看一个函数:

bool StringWrap::isAlpha() const {
   int sz = st.size();
   for (int i = 0; i < sz; i++) {
      if (!( ('a' <= st[i] && st[i] <= 'z')
            || ('A' <= st[i] && st[i] <= 'Z') ) ) {
         return false;
      }
   }
   return true;
}

在这种情况下,ststring。我想知道逻辑语句'a' <= st[i]是什么意思?当我想到进行小于等于比较时,我想到的是数字而不是字符。

('a' <= st[i] && st[i] <= 'z')

该表达式正在测试st[i]是否为小写字符。以下是所有ASCII字符:

 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_
`abcdefghijklmnopqrstuvwxyz{|}~

这些是'a' <= st[i]("至少'a' ")为真:

abcdefghijklmnopqrstuvwxyz{|}~

(注意'a'以下的所有字符都被剪掉了)

这些是st[i] <= 'z' ("at most 'z' ")为真:

 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_
`abcdefghijklmnopqrstuvwxyz

(注意'z'以上的所有字符都被剪掉了)

最后,这些是两个条件都为真的:

abcdefghijklmnopqrstuvwxyz
顺便说一下,方法体可以简化为一行:
#include <algorithm>
#include <cctype>
bool StringWrap::isAlpha() const
{
    return std::all_of(st.begin(), st.end(), isalpha);
}