字母大小写
字母大小写(或大小写)是在某些语言的书写表示中,区分大写字母和小写字母的字母。区分大写和小写的书写系统中具有两组平行的字母,通常一组中的字母在另一组中具有对等的字母。大小写是同一个字母的不同表示:它们具有相同的名称、发音、字母顺序排序。
通常字母大小写在文字中同时出现。大小写的选择一般由语法或特定学科的惯例来确定。大写字母主要用于一些特殊位置,如句子的第一个字母或专有名词,因此小写字母在一般文字中更为常见的。在某些情况下仅使用一种写法,例如用大写字母标注的工程设计图纸,它更容易区分字母,特别是在小字体的情况下。另一方面,在数学中,字母大小写可以指示对象之间的关系,大写字母通常表示大范围的对象(例如,X可以是包含x的集合)。
大写 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
小写 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
大小写折叠和大小写转换
在为電腦开发的字符集中,每个大写字母和小写字母都被编码为一个单独的字符。为了实现大小写折叠和大小写转换,软件需要将代表一个字母的大小写变体的两个字符连接起来。(一些旧的字符编码系统,如博多式电报机,只有一组字母,通常是大写字母)。
大小写不敏感的操作的結果會將大小写折叠。「大小写折叠」這一名詞来自于將字符编码表「折叠」,使大写和小写字母重合為一的意思。计算机应用中經常需要進行大小写转换,例如要對兩個字串進行不区分大小写的比较時,就需先转换大小写。 许多高级编程语言都提供简单的指令來進行大小写转换。对ASCII字符集這方面的指令尤其完善。
大小写变体是否被视为相互等同,取决于计算机系统和环境。例如,用户密码通常是区分大小写的,以讓密碼字符的選擇更為多样,使其更难被破解。相比之下,在关键词搜索中通常会忽略大小写,以便在查询和被查询的材料中忽略关键词大写的不重要变化。
Unicode的大小写折叠和語言识别
Unicode中,每个字符的大小写属性都屬於下列三種之一:大写、小写和标题大小写(在这里,"标题大小写 "是指合字和二合字母等單一字符中,混合了不同大小寫的字母,當中字符的第一部分为大写,第二部分为小写[1])。這些屬性將同一語言中所有不同大小写的字符联系起来。
正如Unicode技术说明第26号[2] 簡要地說明了這個情況:"就实行而言,任何试图统一拉丁文、希腊文和西里尔文的做法都会導致混亂[并]使大小写操作变得一团糟,实际上是使所有的大小写操作都具有上下文敏感性[...]"。换句话说,虽然像A、B、E、H、K、M、O、P、T、X、Y等字母的形状在拉丁文、希腊文和西里尔文之间是共享的(它们的规范形式的微小差异可被认为只屬排版上的差異),但如果一个多语言字符集或字体只为大写字母B提供一个代码点,那还是有问题的,因为这将使文字处理程序很难将这个大写字母变为小写字母的三种不同选择之一,即拉丁文b(U+0062)、希腊文β(U+03B2)或西里尔文в(U+0432)。因此,相应的拉丁文、希腊文和西里尔文大写字母(分别为U+0042、U+0392和U+0412)也被编码为独立的字符,尽管它们的外观基本相同。如果不考虑字母大小写,"统一的欧洲字母表"——如ABБCГDΔΕЄЗFΦGHIИJ...Z,每种语言都有适当的子集——是可行的;但考虑到字母大小写,就会非常清楚这些字母表是相当不同的符号集。
文字处理的方法
大多数现代文字处理器提供自动大小写转换,只需简单的点击或按键。例如,在Microsoft Office Word中,選中文本後,可以在对话框中選擇將文本切換為大写、小写、或标题大小写(即首字母大寫)。快捷键⇧ Shift+F3也有相同效果。
编程中的方法
在某些形式的BASIC中,有两种转换大小写的方法。
UpperA$ = UCASE$("a")
LowerA$ = LCASE$("A")
C和C++,以及任何符合其标准库的类C语言都在文件ctype.h中提供这些大小写转换函数。
char upperA = toupper('a');
char lowerA = tolower('A');
不同的字符集的大小写转换是不同的。在ASCII或EBCDIC字符集中,大小写可以在C语言中通过以下方式转换:
#define toupper(c) (islower(c) ? (c) – 'a' + 'A' : (c))
#define tolower(c) (isupper(c) ? (c) – 'A' + 'a' : (c))
这方法可行是因為在這些字符集中大写字母和小写字母的间隔是固定的。在ASCII中,字母是连续的,而在EBCDIC中,它们不是连续的;尽管如此,大写字母是以相同的模式排列的,并且与小写字母有相同的间隔,所以这个方案仍然有效。
一些计算机编程语言提供了将文本转换为所有单词都大写的指令。Visual Basic称其为 "适当大小写";Python称其为 "标题大小写"。这与通常的标题大小写惯例不同,例如英语中的不重要单词慣常不大写。