TOUPPER - Linux手册页

时间:2019-08-20 18:01:32  来源:igfitidea点击:

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)。

InterfaceAttributeValue
toupper(),tolower(),
toupper_l(),tolower_l()
Thread safetyMT-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就是一个例子。

另外参见

isalpha(3),newlocale(3),setlocale(3),towlower(3),towupper(3),uselocale(3),locale(7)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/