public member function
<locale>

std::ctype::tolower

单个字符 (1)
       char_type tolower (char_type c) const;
序列 (2)
const char_type* tolower (char_type* low, const char_type* high) const;
转换为小写
第一个重载 (1) 返回字符 c 的小写等价字符。如果不存在这样的小写等价字符,则返回 c 本身,不作改变。

第二个重载 (2) 将范围 [low,high) 中的所有大写字符替换为它们对应的小写等价字符。

在内部,此函数仅调用虚保护成员函数 do_tolower,该函数在通用模板和 char 特化版本 (ctype<char>) 中默认执行上述操作。

存在一个同名的非成员函数 (tolower),其行为与 (1) 相同。

参数

c
要转换大小写的字符。
成员类型 char_type 是此 locale facet 的字符类型(定义为 ctype 的模板参数 charT 的别名)。
low, high
指向字符序列的开头和结尾的指针。使用的范围是 [low,high),它包含 low 指向的字符到 high 指向的字符之间的所有字符,包括 low 指向的字符,但不包括 high 指向的字符。
请注意,空字符(如果存在)也会被考虑在内,函数将继续处理它们之后的内容,直到整个范围被转换。
成员类型 char_type 是此 locale facet 的字符类型(定义为 ctype 的模板参数 charT 的别名)。

返回值

第一个重载 (1) 返回字符 c 的小写等价字符(如果不存在这样的小写等价字符,则返回 c 本身,不作改变)。

第二个重载始终返回 high

成员类型 char_type 是此 locale facet 的字符类型(定义为 ctype 的模板参数 charT 的别名)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// ctype::tolower example
#include <iostream>       // std::cout
#include <locale>         // std::locale, std::ctype, std::use_facet

int main ()
{
  std::locale loc;

  char site[] = "CPlusPlus.com";

  std::cout << "The first letter of " << site << " as a lowercase is: ";
  std::cout << std::use_facet< std::ctype<char> >(loc).tolower ( *site );
  std::cout << '\n';

  std::cout << "The result of converting " << site << " to lowercase is: ";
  std::use_facet< std::ctype<char> >(loc).tolower ( site, site+sizeof(site) );
  std::cout << site << '\n';

  return 0;
}

输出

The first letter of CPlusPlus.com as a lowercase is: c
The result of converting CPlusPlus.com to lowercase is: cplusplus.com


数据竞争

该对象被访问。
在 (2) 中,会访问和修改范围 [low,high) 中的元素。

异常安全

如果抛出异常,facet 对象 不会发生任何更改,尽管范围 (2) 中的字符可能会受到影响。

另见