1,字符串转为整数
1 | double atof(const char *str) 把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。 |
2 | 把参数 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 | 关闭流 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 | 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。 |
35 | 从标准输入 stdin 获取一个字符(一个无符号字符)。 |
36 | 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。 |
37 | int putc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。 |
38 | 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。 |
39 | 把一个字符串写入到标准输出 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 | 该函数检查所传的字符是否是字母和数字。 |
2 | 该函数检查所传的字符是否是字母。 |
3 | 该函数检查所传的字符是否是控制字符。 |
4 | 该函数检查所传的字符是否是十进制数字。 |
6 | 该函数检查所传的字符是否是小写字母。 |
10 | 该函数检查所传的字符是否是大写字母。 |
转换函数:
1 | 该函数把大写字母转换为小写字母。 |
2 | 该函数把小写字母转换为大写字母。 |
<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 次幂的值。 |
返回 x 的自然对数(基数为 e 的对数)。 |
返回 x 的常用对数(基数为 10 的对数)。 |
double pow(double x, double y) 返回 x 的 y 次幂。 |
返回 x 的平方根。 |
返回大于或等于 x 的最小的整数值。 |
返回 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 | 这个宏允许使用了 va_start 宏的带有可变参数的函数返回。如果在从函数返回之前没有调用 va_end,则结果为未定义。 |