常用库函数
- 数组的整体操作:
头文件:<cstring>
将a[]初始化:memset(a,
0, sizeof(a));
第二个参数应该传入0、-1或0x7F。传入0或-1时,a[]中每个元素的值都是0或-1;如果传入0x7F时,那么a[]中每个元素的值都是0x7F7F7F7F(不是0x7F!),可认为是“无穷大”。
将a[]整体复制到b[]中:memcpy(b, a, sizeof(a));
判断a[]和b[]是否等价:memcmp(a, b, sizeof(a)); // 返回0表示等价
- 字符操作:
头文件:<cctype>
tolower(c)、toupper(c):将c转化为小写或大写。
isdight(c)、isalpha(c)、isupper(c)、islower(c)、isgraph(c)、isalnum(c):分别判断c是否为十进制数字、英文字母、大写英文字母、小写英文字母、非空格、字母或数字。
- 最大值/最小值:
头文件:<algorithm>
max(a,b)返回a和b中的最小值,min(a,b)返回a和b中的最大值。
其实我们可以自己写: - 交换变量的值:swap(a,b)
头文件:<algorithm>
其实我们可以自己写:inline void swap(int &a, int &b) { int t=a; a=b; b=t; } - 数学函数:
头文件:<cmath>
abs(x):求x的绝对值(该函数同时包含于<cstdlib>)。
sin、cos、tan、asin、acos、atan:三角函数,角的单位为弧度。
可用atan(1)*4表示π。
sinh、cosh、tanh、asinh、acosh、atanh:双曲函数
sqrt:求平方根
ceil(x)、floor(x):分别返回大于等于x的最小整数、小于等于x的最大整数。注意,参数和返回值都是浮点数类型。
exp(x)、log(x)、log10:分别求ex、lnx、lgx
(顺便提一句,指数可以把加法问题转化为乘法问题,对数可以把乘法问题转化为加法问题。)
pow(a,b):计算ab。由于精度问题,你仍然需要学会快速幂。
fmod(a,b):计算a除以b的余数。当然,这是浮点数的版本。