std::islower
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    |   定义于头文件  <cctype>
  | 
||
|   int islower( int ch );  | 
||
检查给定字符是否按照当前 C 本地环境分类为小写字符。默认 "C" 本地环境中, islower 仅对小写字母( abcdefghijklmnopqrstuvwxyz )返回非零值。
若 islower 返回非零值,则保证同一 C 本地环境中 std::iscntrl 、 std::isdigit 、 std::ispunct 和 std::isspace 对同一字符返回零。
若 ch 不可表示为 unsigned char 且不等于 EOF 则行为未定义。
参数
| ch | - | 要分类的字符 | 
返回值
若字符为小写字母则为非零值,否则为零。
注意
同所有其他来自 <cctype> 的函数,若参数值既不能表示为 unsigned char 又不等于 EOF 则 std::islower 的行为未定义。为了以简单的 char (或 signed char )安全使用此函数,首先要将参数转换为 unsigned char :
bool my_islower(char ch) { return std::islower(static_cast<unsigned char>(ch)); }
类似地,迭代器的值类型为 char 或 signed char 时,不应直接将它们用于标准算法。而是要首先转换值为 unsigned char :
int count_lowers(const std::string& s) { return std::count_if(s.begin(), s.end(), // static_cast<int(*)(int)>(std::islower) // 错误 // [](int c){ return std::islower(c); } // 错误 // [](char c){ return std::islower(c); } // 错误 [](unsigned char c){ return std::islower(c); } // 正确 ); }
示例
运行此代码
#include <iostream> #include <cctype> #include <clocale> int main() { unsigned char c = '\xe5'; // ISO-8859-1 中的字母 å std::cout << "islower(\'\\xe5\', default C locale) returned " << std::boolalpha << (bool)std::islower(c) << '\n'; std::setlocale(LC_ALL, "en_GB.iso88591"); std::cout << "islower(\'\\xe5\', ISO-8859-1 locale) returned " << std::boolalpha << (bool)std::islower(c) << '\n'; }
输出:
islower('\xe5', default C locale) returned false
islower('\xe5', ISO-8859-1 locale) returned true
参阅
|   检查字符是否被本地环境分类为小写  (函数模板)  | |
|   检查宽字符是否为小写  (函数)  | 
| ASCII 值 | 字符 | 
 islower  | 
|||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 十进制 | 十六进制 | 八进制 | |||||||||||||
| 0–8 |  \x0–\x8
 | 
 \0–\10
 | 
 控制码 (NUL 等)
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 9 |  \x9
 | 
 \11
 | 
 制表 (\t)
 | 
≠0
 | 
 0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 10–13 |  \xA–\xD
 | 
 \12–\15
 | 
 空白符 (\n, \v, \f, \r)
 | 
≠0
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 14–31 |  \xE–\x1F
 | 
 \16–\37
 | 
控制码 | ≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 32 |  \x20
 | 
 \40
 | 
space |  0
 | 
≠0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 33–47 |  \x21–\x2F
 | 
 \41–\57
 | 
 !"#$%&'()*+,-./
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 48–57 |  \x30–\x39
 | 
 \60–\71
 | 
 0123456789
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
≠0
 | 
≠0
 | 
| 58–64 |  \x3A–\x40
 | 
 \72–\100
 | 
 :;<=>?@
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 65–70 |  \x41–\x46
 | 
 \101–\106
 | 
 ABCDEF
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
 0
 | 
≠0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
| 71–90 |  \x47–\x5A
 | 
 \107–\132
 | 
 GHIJKLMNOPQRSTUVWXYZ
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
 0
 | 
≠0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
| 91–96 |  \x5B–\x60
 | 
 \133–\140
 | 
 [\]^_`
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 97–102 |  \x61–\x66
 | 
 \141–\146
 | 
 abcdef
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
 0
 | 
≠0
 | 
≠0
 | 
 0
 | 
≠0
 | 
 0
 | 
≠0
 | 
| 103–122 |  \x67–\x7A
 | 
 \147–\172
 | 
 ghijklmnopqrstuvwxyz
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
 0
 | 
≠0
 | 
≠0
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
| 123–126 |  \x7B–\x7E
 | 
 \172–\176
 | 
 {|}~
 | 
 0
 | 
≠0
 | 
 0
 | 
 0
 | 
≠0
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
| 127 |  \x7F
 | 
 \177
 | 
 退格字符 (DEL)
 | 
≠0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 | 
 0
 |