通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上标识符即可。这样的程序段,我们称之为子程序(函数)。下面介绍一下C++提供的各种标准函数。
C++常用库函数
1.缓冲区操作函数
1-1 函数名: memchr
函数原型: void *memchr(const void *buf, int c, sizet count);
参数: buf 缓冲区的指针; c 查找的字符; count 检查的字符个数。
所需头文件: <cstring>
功能:查找 buf 的前 count 个字节中 c 的第一次出现,当找到 c 或已检查完 count 个字节时停止。
返回值:如果成功,返回 buf 中 c 首次出现的位置的指针;否则返回 NULL
1-2 函数名: memcpy
函数原型: void *memcpy(void *dest, const void *src, sizet count);
参数: dest 目的缓冲区; src 源缓冲区; count 拷贝的字符个数。
所需头文件 <cstring>
功能:从 src 拷贝 count 个字节到 dest。如果源缓冲区和目的缓冲区重叠,这个函数不能保证正确拷贝;对于这种情况可使用 memmove 处理。
返回值:返回 dest 的值。
1-3 函数名: memicmp
函数原型: int memicmp(const void *buf1, const void *buf2, unsigned intcount);
参数: bufl 第一个缓冲区; buf2第二个缓冲区; count 字符个数。
所需头文件: <cstring>
功能:比较两个缓冲区 bufl 和 buf2的前 count 个字符,比较过程是大小写无关的。
返回值: bufl 和 buf2的前 count 个字节之间的关系:
<0: bufl 小于 buf2;=0: bufl 等于 buf2; >0: bufl 大于 bur2
1-4 函数名: memmove
函数原型: void *memmove(void *dest, const void *src, sizet count);
参数: dest 目的对象; src 源对象; count 拷贝的字符字节个数。
所需头文件; <cstring>
功能:从 src 拷贝 count 个字节到 dest。如果源区域与目的区域有重叠, memmove 也能确保正确拷贝。
返回值:返回 dest 的值。
1-5 函数名: memset
函数原型: void *memset(void *dest, int c, sizet count);
参数: dest 目的指针; c 设置的字符; count 字符个数。
所需头文件: <cstring>
功能:设置 dest 的前 count 个字节为字符 c。
返回值:返回 dest 的值。
1-6 函数名: swab
函数原型: void swab(char *src, char *dest, int n);
参数: src 需拷贝和交换的数据; dest 交换结果数据的存储位置; n 拷贝和交换的字节个数。
所需头文件: <cstdlib>
功能:从 src 拷贝 n 个字节,交换每对相邻的字节,并把结果存储在 dest 中。一般用于为转换到使用不同字节次序的机器上而准备二进制数据。
返回值:无
2.字符分类函数
2-1 函数名: isalnum
函数原型: int isalnum(int c);
所需头文件: <cctype>
功能:测试 c 是否字母或数字。
返回值:如果 c 在 A~Z、 a~z 或0~9的范围内,则返回一个非0值;否则返回0。
2-2 函数名: isalpha
函数原型: int isalpha(int c);
所需头文件: <cctype>
功能:测试 c 是否字母。
返回值:如果 c 在 A~Z 或 a~z 的范围内,则返回一个非0值;否则返回0。
2-3 函数名: isascll
函数原型: int isascll (int c);
所需头文件: <cctype>
功能:测试 c 是否 ASCII 字符。
返回值:如果 c 为一个0x00~0x7F 之间的 ASCII 字符,则返回一个非0值:否则返回0。
2-4 函数名: iscntrl
函数原型: int iscntrl(int c);
所需头文件: <cctype>
功能:测试 c 是否控制字符,
返回值:如果 c 是一个控制字符(0x00~0xlF 或0x7F),则返回一个非0值,否则返回0。
2-5 函数名: iscsym
函数原型: int iscsym (int c);
所需头文件: <cctype>
功能:测试 c 是否字母、下划线或数字。
返回值:如果 c 是一个字母、下划线或数字,则返回一个非0值;否则返回0。
2-6 函数名: iscsymf
函数原型: int iscsymf (int c);
所需头文件: <cctype>
功能:测试是否字母或下划线。
返回值:如果 c 是一个字母或下划线,则返回一个非0值;否则返回0。
2-7 函数名: isdigit
函数原型: int isdigit(int c);
所需头文件: <cctype>
功能:测试是否十进制数字。
返回值:如果 c 是一个十进制数字(0~9),则返回一个非0值;否则返回0。
2-8 函数名: isgraph
函数原型: int isgraph(int c);
所需头文件: <cctype>
功能:测试是否空格外的可打印字符。
返回值:如果 c 是一个非空格的其它可打印字符,则返回一个非0值;否则返回0。
2-9 函数名: islower
函数原型: int islower(int c);
所需头文件: <cctype>
功能:测试是否小写字母。
返回值:如果 c 是一个小写字母(a~z)
2-10 函数名: isprint
函数原型: int isprint(int c);
所需头文件: <cctype>
功能:测试是否可打印字符。
返回值:如果 c 是一个可打印字符包括空格字符(0x20~0x7E),则返回一个非0值;否则返回0。
2-11 函数名: ispunct
函数原型: int ispunct(int c);
所需头文件: <cctype>
功能:测试是否标点符号。
返回值:如果 c 是一个非空格字符并且是 isalnum 不为真的字符,则返回一个非0值;否则返回0。
2-12 函数名: isspace
函数原型: int isspace(int c);
所需头文件: <cctype>
功能:测试是否空白。
返回值:如果 c 是一个空白字符(0x09~0x0D 或0x20) 则返回一个非0值;否则返回0。
2-13 函数名: isupper
函数原型: int isupper(int c);
所需头文件: <cctype>
功能:测试是否大写字母。
返回值:如果 c 是一个大写字母,则返回一个非0值;否则返回0。
2-14 函数名: isxdigit
<