API

只是保存容易想到,而又不用进入章节查看,以快速查询

常量

其他常量请在对应头文件里查看

NUL 字节指字节模式为全0的字节,即\0字符 NULL 指一个值是0的指针,所以NUL和NULL的值是一样的;NULL写在stdio.h;

NUL没有预定义,需要自定义

stdlib.h

常量:EXIT_SUCCESS, EXIT_FAILURE

算数

绝对值:abs ; labs

除法:div ; ldiv

随机数

伪随机数:rand(如需调整范围,用取模处理) ; srand

字符串转化为数字

基数为10:atoi ; atol

基数可以制定:strtol ; strtoul(而且第二个参数可以被返回不合法的字符)

终止执行

abort(SIGABORT) , atexit(注册退出函数), exit

环境

getenv

系统执行命令

system

排序和查找

qsort , bsearch

stddef.h

container_of :

math.h

mathcall.h

除了stdlib中的算数部分,剩余的数学函数声明都在这里。返回值和绝大部分参数都是double  

函数的参数不合法,称作domin error。此时函数返回一个编译器定义的错误值。并且在errno中存储EDOM値;函数的结果过大或者过小,称作range error。此时函数过大返回HUGE_VAL,过小返回0。可能会在errno中设置ERANGE。

三角函数

sin ; cos ; tan ; asin ; acos ; atan ; atan2

双曲函数

sinh ; cosh ; tanh

对数和指数函数

exp ; log ; log10

浮点表示形式

用于不兼容浮点格式的机器

指数和小数:frexp ; ldexp

整数和小数:modf

幂函数

pow ; sqrt

顶数、底数、绝对值和余数

floor ; ceil ; fabs ; fmod

字符串转化浮点

atof ; strtod

time.h

(机器无法提供,或者提供的値太大,返回-1)

偶尔会出现“闰秒”,所以秒数可能是61

处理器时间

程序执行之后的消耗时间:clock (需要除以CLOCKS_PER_SEC)

当天时间

time ;

日期和时间的转化

ctime (转化成字符串,内部可能是调用了asctime); difftime(计算差值)

gmtime (UTC\GMT); localtime

time_t 在很多编译器定义为32位,这样从1970到2038年的秒数会溢出

asctime, strftime

mktime(可以简单判断日期属于星期几)

setjmp.h

类似goto语句的机制

setjmp , longjmp

signal.h

SIG_ERR, SIG_DFL, SIG_IGN

(在我的环境下,信号是在signum-generic.h中,如SIGABORT)

raise (可以手动触发信号,主要用来测试,避免goto的效果)

void (*signal(int sig, void (* handler)(int)))(int)

sig_atomic_t

stdarg.h

可变参数

类型 va_list 和三个宏 : va_start , va_arg , va_end

arg参数需要用va_start进行初始化

assert.h

添加 -DNDEBUG 编译器命令或者在assert.h的文件中添加#define NDEBUG 可以消除所有断言

assert

locale.h

setlocale

数值和货币格式

localeconv

limits.h

数值的最大最小值

UCHAR_MAX
UINT_MAX

float.h

FLT_MAX,... //浮点数大小

string.h

strcoll (根据当前locale的LC_COLLATE); strxfrm ; strdup

memchr memcmp memcpy memmove memset

函数名

作用

备注

strlen()

长度

返回的是uint

strcpy()/strncpy

拷贝

注意越界,可以调用strcpy(..., size_t len)

strcat()/strncat

拼接

同上

strcmp()/strncmp

比较

字典序

strchr()

查找第一个匹配字符位置

strrchr()

查找最后一个匹配字符位置

strpbrk()

查找一组字符中第一个匹配字符位置

strstr()

查找字符串

strspn()

统计属于某一组字符中的个数,直至遇到不属于该组字符的字符为止

strcspn()

与上一个取反

strtrok()

去除分隔符

会修改源字符串

strerror()

获取操作系统errno对应的描述字符串

ctype.h

函数名

作用

备注

iscntrl

控制

isspace

空格,换页,换行,回车,制表符或垂直制表符

isdigit

0~9

isxdigit

0~9, a~f, A~F

islower

a~z

自己直接判断 >a,<z 的方式移植性不足

isupper

A~Z

isalpha

islower and isupper

isalnum

isalpha and isdigit

ispunct

标点符号,任何不属于数字或字母的图形字符(可打印字符)

isgraph

任何图形字符

isprint

任何可打印字符,包括图形字符和空白字符

tolower()

toupper()

Last updated

Was this helpful?