简介
-
标准库相关笔记
C++ 标准库
C++ 标准库 <cctype>
提供了一组用于对字符进行分类和简单字符处理的函数。这些函数在 <cctype>
头文件中声明,并且是 C++ 中处理字符的标准方式。
以下是 <cctype>
头文件中常用的一些函数:
字符分类函数:
std::isalnum(int c)
: 检查字符是否是字母或数字。std::isalpha(int c)
: 检查字符是否是字母。std::isdigit(int c)
: 检查字符是否是十进制数字。std::islower(int c)
: 检查字符是否是小写字母。std::isupper(int c)
: 检查字符是否是大写字母。std::isspace(int c)
: 检查字符是否是空格或类似的空白字符。std::iscntrl(int c)
: 检查字符是否是控制字符。std::ispunct(int c)
: 检查字符是否是标点符号。std::isprint(int c)
: 检查字符是否是可打印字符。std::isxdigit(int c)
: 检查字符是否是十六进制数字。
字符转换函数:
std::tolower(int c)
: 将字符转换为小写形式。std::toupper(int c)
: 将字符转换为大写形式。
其他函数:
std::tolower()
和std::toupper()
还有版本可用于处理字符的宽字符版本wchar_t
,其函数名为std::towlower()
和std::towupper()
。
这些函数都接受一个整数参数,通常是 int
类型,表示要检查或转换的字符。函数返回值为 int
类型,通常表示一个非零值(真)或零值(假)来指示检查的条件是否满足。
这些函数通常用于检查或转换字符,例如,检查一个字符是否是字母、数字,或者将字符转换为大写或小写形式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cctype>
int main() {
char ch = 'A';
if (std::isupper(ch)) {
std::cout << "字符 " << ch << " 是大写字母" << std::endl;
}
char lowercase = std::tolower(ch);
std::cout << "将字符 " << ch << " 转换为小写形式为: " << lowercase << std::endl;
return 0;
}
以上示例演示了 std::isupper()
函数检查一个字符是否为大写字母,以及 std::tolower()
函数将一个字符转换为小写形式。
C++ 标准库 详解
<cctype>
是 C++ 标准库中的头文件,提供了一系列操作 C 风格字符串中字符的函数,这些函数是字符分类函数(character classification functions),用于检查和操作字符的特性。
以下是 <cctype>
头文件中常见的函数及其功能:
- 字符分类函数:
isalnum(int c)
:检查字符是否是字母或数字。isalpha(int c)
:检查字符是否是字母。isdigit(int c)
:检查字符是否是十进制数字。isxdigit(int c)
:检查字符是否是十六进制数字。islower(int c)
:检查字符是否是小写字母。isupper(int c)
:检查字符是否是大写字母。isspace(int c)
:检查字符是否是空白字符(空格、制表符、换行符等)。iscntrl(int c)
:检查字符是否是控制字符。ispunct(int c)
:检查字符是否是标点符号。isprint(int c)
:检查字符是否是可打印字符(包括空格)。isgraph(int c)
:检查字符是否是可打印字符,但不包括空格。
- 字符转换函数:
tolower(int c)
:将字符转换为小写字母(如果是大写字母的话)。toupper(int c)
:将字符转换为大写字母(如果是小写字母的话)。
这些函数通常用于对字符进行分类、转换或验证操作。它们的参数一般是一个整数(int
类型),这个整数可以是字符,也可以是 EOF
(文件结束符)的值。
示例:
以下是一个简单的示例,展示了 <cctype>
头文件中的一些函数的基本用法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cctype>
int main() {
char ch = 'A';
if (std::isalnum(ch)) {
std::cout << "Character is alphanumeric." << std::endl;
}
if (std::isdigit(ch)) {
std::cout << "Character is a digit." << std::endl;
}
std::cout << "Lowercase: " << std::tolower(ch) << std::endl;
std::cout << "Uppercase: " << std::toupper(ch) << std::endl;
return 0;
}
此示例中,使用了 isalnum()
、isdigit()
、tolower()
和 toupper()
函数来检查和转换字符的特性。isalnum()
检查字符是否是字母或数字,isdigit()
检查字符是否是数字,tolower()
和 toupper()
分别将字符转换为小写和大写形式。
std::tolower()
std::tolower()
是 C++ 标准库中 <cctype>
头文件中提供的函数,用于将单个字符转换为小写形式。
函数原型:
1
int tolower(int c);
参数:
c
:要转换为小写的字符。
返回值:
- 如果
c
是大写字母,则返回对应的小写字母,否则返回c
本身。
示例:
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cctype>
int main() {
char uppercase = 'A';
char lowercase = std::tolower(uppercase);
std::cout << "大写字母 " << uppercase << " 转换为小写字母为: " << lowercase << std::endl;
return 0;
}
输出:
1
大写字母 A 转换为小写字母为: a
在这个示例中,std::tolower('A')
将大写字母 ‘A’ 转换为小写字母 ‘a’。
std::toupper()
std::toupper()
是 C++ 标准库中 <cctype>
头文件中提供的函数之一,用于将字符转换为大写形式。
函数原型:
1
int toupper(int c);
参数:
c
:要转换为大写的字符。
返回值:
- 如果
c
是小写字母,则返回对应的大写字母;否则返回c
本身。
示例:
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cctype>
int main() {
char lowercase = 'a';
char uppercase = std::toupper(lowercase);
std::cout << "小写字母 " << lowercase << " 转换为大写字母为: " << uppercase << std::endl;
return 0;
}
输出:
1
小写字母 a 转换为大写字母为: A
在这个示例中,std::toupper('a')
将小写字母 ‘a’ 转换为大写字母 ‘A’。