public member function
<locale>

std::ctype::toupper

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

第二个重载 (2) 将范围 [low,high) 内的任何小写字符替换为其大写等效字符。

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

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

参数

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

返回值

第一个重载 (1) 返回 c 的大写等效字符(如果不存在则返回 c 本身,不作修改)。

第二个重载始终返回 high

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

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// ctype::toupper 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 an uppercase is: ";
  std::cout << std::use_facet< std::ctype<char> >(loc).toupper(*site);
  std::cout << '\n';

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

  return 0;
}

输出

The first letter of cplusplus.com as an uppercase is: C
The result of converting cplusplus.com to uppercase is: CPLUSPLUS.COM


数据竞争

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

异常安全

如果发生异常,facet 对象不会有任何改变,但范围 (2) 中的字符可能会受到影响。

另见