TOUPPER - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
toupper,tolower,toupper_l,tolower_l-转换为大写或小写
语法
#include <ctype.h> int toupper(int c); int tolower(int c); int toupper_l(int c, locale_t locale); int tolower_l(int c, locale_t locale);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
toupper_l(),tolower_l():
- Since glibc 2.10:
- _XOPEN_SOURCE>= 700
- Before glibc 2.10:
- _GNU_SOURCE
说明
这些函数将小写字母转换为大写字母,反之亦然。
如果c是小写字母,如果当前语言环境中存在大写表示形式,则toupper()返回其大写形式。否则,它返回c。 toupper_l()函数执行相同的任务,但使用语言环境句柄语言环境所引用的语言环境。
如果c是大写字母,则在当前语言环境中存在小写表示形式的情况下,tolower()返回其小写字母。否则,它返回c。 tolower_l()函数执行相同的任务,但是使用语言环境句柄语言环境所引用的语言环境。
如果c既不是无符号字符值也不是EOF,则这些函数的行为是不确定的。
如果语言环境是特殊语言环境对象LC_GLOBAL_LOCALE(请参见duplocale(3))或不是有效的语言环境对象句柄,则toupper_l()和tolower_l()的行为是不确定的。
返回值
返回的值是转换后的字母的值;如果无法进行转换,则返回c。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
toupper(),tolower(), toupper_l(),tolower_l() | Thread safety | MT-Safe |
遵循规范
toupper(),tolower():C89,C99、4.3BSD,POSIX.1-2001,POSIX.1-2008。
toupper_l(),tolower_l():POSIX.1-2008。
备注
这些标准要求这些函数的参数c为EOF或以unsigned char类型表示的值。如果参数c为char类型,则必须将其强制转换为unsigned char,如以下示例所示:
char c; ... res = toupper((unsigned char) c);
这是必需的,因为char可能是等效的有符号char,在这种情况下,将转换为int时将对设置了最高位的字节进行符号扩展,产生的值超出了无符号char的范围。
组成大写或小写字母的细节取决于语言环境。例如,默认的C语言环境不了解变音符号,因此不对其进行任何转换。
在某些非英语语言环境中,有些小写字母没有对应的大写字母。德国的Sharp就是一个例子。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。