1,字符串转为整数

1

​double atof(const char *str)​

把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。

2

​int atoi(const char *str)​

把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。

3

​long int atol(const char *str)​

把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。

这里的转换只能是10进制的,其他进制的函数参考​​ACM模板​

2,二分查找bsearch

void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))

  • key -- 指向要查找的元素的指针,类型转换为 void*。
  • base -- 指向进行查找的数组的第一个对象的指针,类型转换为 void*。
  • nitems -- base 所指向的数组中元素的个数。
  • size -- 数组中每个元素的大小,以字节为单位。
  • compar -- 用来比较两个元素的函数。

如果查找成功,该函数返回一个指向数组中匹配元素的指针,否则返回空指针。.

3,排序qsort

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))

  • base -- 指向要排序的数组的第一个元素的指针。
  • nitems -- 由 base 指向的数组中元素的个数。
  • size -- 数组中每个元素的大小,以字节为单位。
  • compar -- 用来比较两个元素的函数。

4,绝对值

int abs(int x)

long int labs(long int x)


1,库变量

2

FILE

这是一个适合存储文件流信息的对象类型。

2,库宏

4

EOF

这个宏是一个表示已经到达文件结束的负整数。

10

stderr、stdin 和 stdout

这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。

3,库函数

7

​FILE *fopen(const char *filename, const char *mode)​

使用给定的模式 mode 打开 filename 所指向的文件。

1

​int fclose(FILE *stream)​

关闭流 stream。刷新所有的缓冲区。

9

​FILE *freopen(const char *filename, const char *mode, FILE *stream)​

把一个新的文件名 filename 与给定的打开的流 stream 关联,同时关闭流中的旧文件。

21

​int fprintf(FILE *stream, const char *format, ...)​

发送格式化输出到流 stream 中。

22

​int printf(const char *format, ...)​

发送格式化输出到标准输出 stdout。

23

​int sprintf(char *str, const char *format, ...)​

发送格式化输出到字符串。

27

​int fscanf(FILE *stream, const char *format, ...)​

从流 stream 读取格式化输入。

28

​int scanf(const char *format, ...)​

从标准输入 stdin 读取格式化输入。

29

​int sscanf(const char *str, const char *format, ...)​

从字符串读取格式化输入。

34

​int getc(FILE *stream)​

从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。

35

​int getchar(void)​

从标准输入 stdin 获取一个字符(一个无符号字符)。

36

​char *gets(char *str)​

从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

37

​int putc(int char, FILE *stream)​

把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。

38

​int putchar(int char)​

把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。

39

​int puts(const char *str)​

把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中。

<string.h>

(1)基于内存

1

​void *memchr(const void *str, int c, size_t n)​

在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。

2

​int memcmp(const void *str1, const void *str2, size_t n)​

把 str1 和 str2 的前 n 个字节进行比较。

3

​void *memcpy(void *dest, const void *src, size_t n)​

从 src 复制 n 个字符到 dest

5

​void *memset(void *str, int c, size_t n)​

复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。

(2)基于字符串

6

​char *strcat(char *dest, const char *src)​

把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。

7

​char *strncat(char *dest, const char *src, size_t n)​

把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。

8

​char *strchr(const char *str, int c)​

在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。

9

​int strcmp(const char *str1, const char *str2)​

把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

10

​int strncmp(const char *str1, const char *str2, size_t n)​

把 str1 和 str2 进行比较,最多比较前 n 个字节。

12

​char *strcpy(char *dest, const char *src)​

把 src 所指向的字符串复制到 dest

13

​char *strncpy(char *dest, const char *src, size_t n)​

把 src 所指向的字符串复制到 dest,最多复制 n 个字符。

16

​size_t strlen(const char *str)​

计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。

20

​char *strstr(const char *haystack, const char *needle)​

在字符串 haystack 中查找第一次出现字符串 needle(不包含空结束字符)的位置。

<assert.h>

C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。

序号

函数 & 描述

1

​void assert(int expression)​

这实际上是一个宏,不是一个函数,可用于在 C 程序中添加诊断。

ASSERT() 是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为 FALSE (0), 程序将报告错误,并终止执行。如果表达式不为 0,则继续执行后面的语句。

封装用法:

if(......)

{

    assert(0);

}

assert 的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。

使用 assert 的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

<ctype.h>

判读函数:

1

​int isalnum(int c)​

该函数检查所传的字符是否是字母和数字。

2

​int isalpha(int c)​

该函数检查所传的字符是否是字母。

3

​int iscntrl(int c)​

该函数检查所传的字符是否是控制字符。

4

​int isdigit(int c)​

该函数检查所传的字符是否是十进制数字。

6

​int islower(int c)​

该函数检查所传的字符是否是小写字母。

10

​int isupper(int c)​

该函数检查所传的字符是否是大写字母。

转换函数:

1

​int tolower(int c)​

该函数把大写字母转换为小写字母。

2

​int toupper(int c)​

该函数把小写字母转换为大写字母。

<limits.h>

limits.h 头文件决定了各种变量类型的最大值和最小值

描述

CHAR_BIT

8

定义一个字节的比特数。

SCHAR_MIN

-128

定义一个有符号字符的最小值。

SCHAR_MAX

127

定义一个有符号字符的最大值。

UCHAR_MAX

255

定义一个无符号字符的最大值。

INT_MIN

-32768

定义一个整型的最小值。

INT_MAX

+32767

定义一个整型的最大值。

UINT_MAX

65535

定义一个无符号整型的最大值。

LONG_MIN

-2147483648

定义一个长整型的最小值。

LONG_MAX

+2147483647

定义一个长整型的最大值。

ULONG_MAX

4294967295

定义一个无符号长整型的最大值。

<math.h>

math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果。

下面是这个库中定义的唯一的一个宏:

序号

宏 & 描述

1

HUGE_VAL

当函数的结果不可以表示为浮点数时。如果是因为结果的幅度太大以致于无法表示,则函数会设置 errno 为 ERANGE 来表示范围错误,并返回一个由宏 HUGE_VAL 或者它的否定(- HUGE_VAL)命名的一个特定的很大的值。

如果结果的幅度太小,则会返回零值。在这种情况下,error 可能会被设置为 ERANGE,也有可能不会被设置为 ERANGE。


函数 & 描述


​double exp(double x)​​ 返回 e 的 x 次幂的值。


​double log(double x)​

返回 x 的自然对数(基数为 e 的对数)。

​double log10(double x)​

返回 x 的常用对数(基数为 10 的对数)。

​double pow(double x, double y)​

返回 x 的 y 次幂。

​double sqrt(double x)​

返回 x 的平方根。

​double ceil(double x)​

返回大于或等于 x 的最小的整数值。

​double fabs(double x)​

返回 x 的绝对值。

​double floor(double x)​

返回小于或等于 x 的最大的整数值。

<stddef.h>

变量类型

序号

变量 & 描述

2

size_t

这是无符号整数类型,它是 sizeof 关键字的结果。

库宏

序号

宏 & 描述

1

​NULL​

这个宏是一个空指针常量的值。

2

​offsetof(type, member-designator)​

这会生成一个类型为 size_t 的整型常量,它是一个结构成员相对于结构开头的字节偏移量。成员是由 member-designator 给定的,结构的名称是在 type 中给定的。

<stdarg.h>

1,简介

stdarg.h 头文件定义了一个变量类型 va_list 和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数。

可变参数的函数通在参数列表的末尾是使用省略号(,...)定义的。

2,库变量

下面是头文件 stdarg.h 中定义的变量类型:

序号

变量 & 描述

1

va_list

这是一个适用于 va_start()、va_arg() 和 va_end() 这三个宏存储信息的类型。

3,库宏

下面是头文件 stdarg.h 中定义的宏:

序号

宏 & 描述

1

​void va_start(va_list ap, last_arg)​

这个宏初始化 ap 变量,它与 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。

2

​type va_arg(va_list ap, type)​

这个宏检索函数参数列表中类型为 type 的下一个参数。

3

​void va_end(va_list ap)​

这个宏允许使用了 va_start 宏的带有可变参数的函数返回。如果在从函数返回之前没有调用 va_end,则结果为未定义。