C 标准库 - 快速指南


C 库 - <assert.h>

C 标准库的assert.h 头文件提供了一个名为assert 的宏,用于验证程序所做的假设,并在该假设不成立时打印诊断消息

定义的宏断言引用了另一个不属于 <assert.h> 的宏NDEBUG 。如果 NDEBUG 在源文件中定义为宏名称,则在包含 <assert.h> 的位置,断言宏定义如下 -

#define assert(ignore) ((void)0)

库宏

以下是头文件assert.h中定义的唯一函数 -

先生。 功能说明
1 无效断言(int表达式)

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

C 库 - <ctype.h>

C 标准库的ctype.h头文件声明了几个对于测试和映射字符有用的函数。

所有函数都接受int作为参数,其值必须是 EOF 或可表示为无符号字符。

如果参数 c 满足所描述的条件,则所有函数返回非零 (true),否则返回零 (false)。

库函数

以下是头文件 ctype.h 中定义的函数 -

先生。 功能说明
1 int isalnum(int c)

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

2 int isalpha(int c)

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

3 int iscntrl(int c)

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

4 int isdigit(int c)

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

5 int isgraph(int c)

此函数检查传递的字符是否具有使用区域设置的图形表示。

6 int islower(int c)

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

7 int isprint(int c)

该函数检查传递的字符是否可打印。

8 int ispunct(int c)

该函数检查传递的字符是否是标点符号。

9 int isspace(int c)

该函数检查传递的字符是否为空格。

10 int isupper(int c)

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

11 int isxdigit(int c)

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

该库还包含两个接受并返回“int”的转换函数。

先生。 功能说明
1 int tolower(int c)

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

2 int toupper(int c)

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

字符类

先生。 字符类别和描述
1

数字

这是一组整数 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }。

2

十六进制数字

这是 { 0 1 2 3 4 5 6 7 8 9 ABCDEF abcdef } 的集合。

3

小写字母

这是一组小写字母 { abcdefghijklmnopqrstu vwxyz }。

4

大写字母

这是一组大写字母 {ABCDEFGHIJKLMNOPQRSTU VWXYZ }。

5

信件

这是一组小写和大写字母。

6

字母数字字符

这是一组数字、小写字母和大写字母。

7

标点符号

这是一套!" # $ % & ' ( ) * + , - ./ : ; < = > ? @ [ \ ] ^ _ ` { | } ~

8

图形字符

这是一组字母数字字符和标点符号字符。

9

空格字符

这是一组制表符、换行符、垂直制表符、换页符、回车符和空格。

10

可打印字符

这是一组字母数字字符、标点符号字符和空格字符。

11

控制字符

在 ASCII 中,这些字符具有八进制代码 000 到 037 以及 177 (DEL)。

12

空白字符

这些是空格和制表符。

13

字母字符

这是一组小写字母和大写字母。

C 库 - <errno.h>

C 标准库的errno.h头文件定义了整型变量errno,该变量由系统调用和一些库函数在发生错误时设置,以指示出了什么问题。该宏扩展为 int 类型的可修改左值,因此它可以由程序读取和修改。

errno在程序启动设置为零。标准 C 库的某些函数将其值修改为非零以表示某些类型的错误。您还可以在方便时修改其值或重置为零。

errno.h头文件还定义了指示不同错误代码的宏列表,这些宏列表将扩展为int类型的整数常量表达式。

库宏

以下是头文件 errno.h 中定义的宏 -

先生。 宏及描述
1 外部 内部 错误号

这是系统调用和一些库函数设置的宏,在发生错误时指示出了什么问题。

2 EDOM 域错误

该宏表示域错误,如果输入参数位于定义数学函数且 errno 设置为 EDOM 的域之外,则会发生域错误。

3 ERANGE 范围错误

该宏表示范围错误,如果输入参数超出定义数学函数且 errno 设置为 ERANGE 的范围,则会发生范围错误。

C 库 - <float.h>

C 标准库的float.h头文件包含一组与浮点值相关的各种与平台相关的常量。这些常数是由 ANSI C 提出的。它们允许制作更多可移植的程序。在检查所有常量之前,最好了解浮点数由以下四个元素组成 -

先生。 组件及组件说明
1

S

符号 (+/-)

2

指数表示的基数或基数,2 表示二进制,10 表示十进制,16 表示十六进制,依此类推...

3

e

指数,最小值e min和最大值e max之间的整数。

4

p

精度,有效数中以 b 为基数的位数。

基于上述 4 个组成部分,浮点的值如下 -

floating-point = ( S ) p x be

or

floating-point = (+/-) precision x baseexponent

库宏

以下值是特定于实现的,并使用 #define 指令定义,但这些值不得低于此处给出的值。请注意,在所有情况下,FLT 指的是float类型,DBL 指的是double 类型,LDBL 指的是long double 类型

先生。 宏及描述
1

FLT_ROUNDS

定义浮点加法的舍入模式,它可以具有以下任何值 -

  • -1 − 不确定
  • 0 − 趋于零
  • 1 − 到最近的
  • 2 − 朝向正无穷大
  • 3 − 朝向负无穷大
2

FLT_RADIX 2

这定义了指数的基数表示。以 2 为基数是二进制,以 10 为基数是正常的十进制表示形式,以 16 为基数是十六进制。

3

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

这些宏定义数字中的位数(以 FLT_RADIX 为基数)。

4

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

这些宏定义了舍入后可以表示的最大十进制位数(以 10 为底)。

5

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

这些宏定义基本 FLT_RADIX 中指数的最小负整数值。

6

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

这些宏定义以 10 为基数的指数的最小负整数值。

7

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

这些宏定义基本 FLT_RADIX 中指数的最大整数值。

8

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

这些宏定义以 10 为基数的指数的最大整数值。

9

FLT_最大1E+37

DBL_最大1E+37

LDBL_最大 1E+37

这些宏定义最大有限浮点值。

10

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

这些宏定义可表示的最低有效数字。

11

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

这些宏定义最小浮点值。

例子

以下示例显示了 float.h 文件中定义的一些常量的用法。

现场演示
#include <stdio.h>
#include <float.h>

int main () {
   printf("The maximum value of float = %.10e\n", FLT_MAX);
   printf("The minimum value of float = %.10e\n", FLT_MIN);

   printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}

让我们编译并运行上面的程序,将产生以下结果 -

The maximum value of float = 3.4028234664e+38
The minimum value of float = 1.1754943508e-38
The number of digits in the number = 7.2996655210e-312

C 库 - <limits.h>

limit.h标头确定各种变量类型的各种属性。此头文件中定义的宏限制了各种变量类型(如 char、int 和 long)的值。

这些限制指定变量不能存储超出这些限制的任何值,例如无符号字符最多可以存储 255 的最大值。

库宏

以下值是特定于实现的,并使用 #define 指令定义,但这些值不得低于此处给出的值。

价值 描述
字符位 8 定义一个字节中的位数。
SCHAR_MIN -128 定义有符号字符的最小值。
SCHAR_MAX +127 定义有符号字符的最大值。
UCHAR_MAX 255 定义无符号字符的最大值。
CHAR_MIN -128 定义 char 类型的最小值,如果 char 表示负值,则其值将等于 SCHAR_MIN,否则为零。
字符最大值 +127 定义 char 类型的值,如果 char 表示负值,则其值将等于 SCHAR_MAX,否则为 UCHAR_MAX。
MB_LEN_MAX 16 定义多字节字符中的最大字节数。
SHRT_MIN -32768 定义短整型的最小值。
SHRT_MAX +32767 定义短整型的最大值。
USHRT_MAX 65535 定义无符号短整型的最大值。
INT_MIN -2147483648 定义 int 的最小值。
INT_MAX +2147483647 定义 int 的最大值。
UINT_MAX 4294967295 定义无符号整型的最大值。
LONG_MIN -9223372036854775808 定义 long int 的最小值。
长_最大 +9223372036854775807 定义 long int 的最大值。
ULONG_MAX 18446744073709551615 定义 unsigned long int 的最大值。

例子

以下示例显示了limit.h文件中定义的一些常量的用法。

现场演示
#include <stdio.h>
#include <limits.h>

int main() {

   printf("The number of bits in a byte %d\n", CHAR_BIT);

   printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);
   printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);
   printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);

   printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);
   printf("The maximum value of SHORT INT = %d\n", SHRT_MAX); 

   printf("The minimum value of INT = %d\n", INT_MIN);
   printf("The maximum value of INT = %d\n", INT_MAX);

   printf("The minimum value of CHAR = %d\n", CHAR_MIN);
   printf("The maximum value of CHAR = %d\n", CHAR_MAX);

   printf("The minimum value of LONG = %ld\n", LONG_MIN);
   printf("The maximum value of LONG = %ld\n", LONG_MAX);
  
   return(0);
}

让我们编译并运行上面的程序,将产生以下结果 -

The maximum value of UNSIGNED CHAR = 255                                    
The minimum value of SHORT INT = -32768                                     
The maximum value of SHORT INT = 32767                                      
The minimum value of INT = -2147483648                                      
The maximum value of INT = 2147483647                                       
The minimum value of CHAR = -128                                            
The maximum value of CHAR = 127                                             
The minimum value of LONG = -9223372036854775808                            
The maximum value of LONG = 9223372036854775807

C 库 - <locale.h>

locale.h标头定义了位置特定的设置,例如日期格式和货币符号您会发现定义了几个宏以及一个重要的结构struct lconv和下面列出的两个重要函数。

库宏

以下是标头中定义的宏,这些宏将在下面列出的两个函数中使用 -

先生。 宏及描述
1

LC_ALL

设置一切。

2

LC_COLLATE

影响 strcoll 和 strxfrm 函数。

3

LC_CTYPE

影响所有角色功能。

4

LC_MONETARY

影响 localeconv 函数提供的货币信息。

5

LC_NUMERIC

影响小数点格式和 localeconv 函数提供的信息。

6

LC_TIME

影响 strftime 函数。

库函数

以下是头文件 locale.h 中定义的函数 -

先生。 功能说明
1 char *setlocale(int 类别, const char *locale)

设置或读取位置相关信息。

2 结构 lconv *localeconv(void)

设置或读取位置相关信息。

库结构

typedef struct {
   char *decimal_point;
   char *thousands_sep;
   char *grouping;	
   char *int_curr_symbol;
   char *currency_symbol;
   char *mon_decimal_point;
   char *mon_thousands_sep;
   char *mon_grouping;
   char *positive_sign;
   char *negative_sign;
   char int_frac_digits;
   char frac_digits;
   char p_cs_precedes;
   char p_sep_by_space;
   char n_cs_precedes;
   char n_sep_by_space;
   char p_sign_posn;
   char n_sign_posn;
} lconv

以下是每个字段的描述 -

先生。 字段和描述
1

小数点

用于非货币值的小数点字符。

2

千_sep

用于非货币值的千位分隔符。

3

分组

一个字符串,指示非货币数量中每组数字的大小。每个字符代表一个整数值,它指定当前组中的位数。值 0 表示先前的值将用于其余组。

4

int_curr_symbol

它是所使用的国际货币符号的字符串。前三个字符是 ISO 4217:1987 指定的字符,第四个字符是将货币符号与货币数量分开的字符。

5

货币符号

用于货币的当地符号。

6

mon_decimal_point

用于货币值的小数点字符。

7

mon_thousands_sep

用于货币值的千位分组字符。

8

mon_分组

一个字符串,其元素定义货币值中数字分组的大小。每个字符代表一个整数值,指定当前组中的位数。值 0 表示先前的值将用于其余组。

9

正号

用于表示正货币值的字符。

10

负号

用于负货币值的字符。

11

int_frac_digits

国际货币价值中小数点后显示的位数。

12

分形数字

货币值小数点后显示的位数。

13

p_cs_在前

如果等于 1,则currency_symbol 出现在正货币值之前。如果等于 0,则currency_symbol 出现在正货币值之后。

14

p_sep_by_space

如果等于 1,则currency_symbol 与正货币值之间用空格分隔。如果等于 0,则currency_symbol 和正货币值之间没有空格。

15

n_cs_在前

如果等于 1,则currency_symbol 位于负货币值之前。如果等于 0,则currency_symbol 后面是负货币值。

16

n_sep_by_space

如果等于 1,则currency_symbol 与负货币值之间用空格分隔。如果等于 0,则currency_symbol 和负货币值之间没有空格。

17 号

p_sign_posn

表示正货币值中 Positive_sign 的位置。

18

n_符号_位置

表示负货币值中的 negative_sign 的位置。

以下值用于p_sign_posnn_sign_posn -

价值 描述
0 括号封装了值和货币符号。
1 符号位于值和货币符号之前。
2 符号位于值和货币符号之后。
3 符号紧接在值和货币符号之前。
4 符号紧随值和货币符号之后。

C 库 - <math.h>

math.h标头定义了各种数学函数一个宏。该库中的所有可用函数均采用double作为参数并返回double作为结果。

库宏

该库中仅定义了一个宏 -

先生。 宏及描述
1

HUGE_VAL

当函数的结果可能无法表示为浮点数时,使用此宏。如果正确结果的幅度太大而无法表示,则该函数将 errno 设置为 ERANGE 以指示范围错误,并返回由宏 HUGE_VAL 或其否定 (- HUGE_VAL) 命名的特定的非常大的值。

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

库函数

以下是头文件 math.h 中定义的函数 -

先生。 功能说明
1 双 acos(双 x)

返回 x 的反余弦值(以弧度表示)。

2 双asin(双x)

返回 x 的反正弦值(以弧度表示)。

3 双阿坦(双x)

返回 x 的反正切值(以弧度表示)。

4 双 atan2(双 y, 双 x)

根据两个值的符号返回以弧度为单位的 y/x 反正切,以确定正确的象限。

5 双 cos(双 x)

返回弧度角 x 的余弦。

6 双 cosh(双 x)

返回 x 的双曲余弦。

7 双罪(双x)

返回弧度角 x 的正弦值。

8 双正弦(双x)

返回 x 的双曲正弦值。

9 双 tanh(双 x)

返回 x 的双曲正切。

10 双倍 exp(双 x)

返回e的x 次方值。

11 double frexp(double x, int *指数)

返回值是尾数,指数指向的整数是指数。结果值为 x = 尾数 * 2 ^ 指数。

12 double ldexp(double x, int 指数)

返回x乘以 2 的指数次方。

13 双对数(双 x)

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

14 双 log10(双 x)

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

15 双 modf(双 x, 双 * 整数)

返回值是小数部分(小数点后的部分),并将整数部分设置为integer。

16 双战俘(双 x,双 y)

返回 x 的y次方。

17 号 双开方(双 x)

返回x的平方根。

18 双天花板(双x)

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

19 双晶圆厂(双x)

返回x的绝对值。

20 双层(双x)

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

21 双 fmod(双 x, 双 y)

返回 x 除以y的余数。

C 库 - <setjmp.h>

setjmp.h标头定义了宏setjmp()、一个函数longjmp()和一个变量类型jmp_buf 用于绕过正常的函数调用和返回规则。

库变量

以下是头文件 setjmp.h 中定义的变量类型 -

先生。 变量和描述
1

jmp_缓冲区

这是一个数组类型,用于保存宏setjmp()和函数longjmp()的信息。

库宏

该库中仅定义了一个宏 -

先生。 宏及描述
1 int setjmp(jmp_buf环境)

该宏将当前环境保存到变量环境中,供函数longjmp()稍后使用。如果该宏直接从宏调用返回,则返回零,但如果从longjmp()函数调用返回,则返回非零值。

库函数

以下是头文件 setjmp.h 中定义的唯一一个函数 -

先生。 功能说明
1 void longjmp(jmp_buf环境,int值)

该函数使用相应的jmp_buf参数恢复在同一程序调用中最近一次调用setjmp()宏所保存的环境。

C 库 - <signal.h>

signal.h标头定义了一个变量类型sig_atomic_t、两个函数调用和几个宏来处理程序执行期间报告的不同信号

库变量

以下是标头 signal.h 中定义的变量类型 -

先生。 变量和描述
1

sig_atomic_t

这是int类型,用作信号处理程序中的变量。这是对象的完整类型,即使存在异步信号,也可以将其作为Atomics实体进行访问。

库宏

以下是头文件 signal.h 中定义的宏,这些宏将在下面列出的两个函数中使用。SIG_宏与信号函数一起使用来定义信号函数

先生。 宏及描述
1

SIG_DFL

默认信号处理程序。

2

SIG_ERR

代表信号错误。

3

SIG_IGN

信号忽略。

SIG宏用于表示以下条件下的信号编号-

先生。 宏及描述
1

SIGABRT

程序异常终止。

2

SIGFPE

浮点错误,例如被零除。

3

西吉尔

非法操作。

4

信号情报

中断信号,例如 ctrl-C。

5

信号发生器

对存储的无效访问,例如段冲突。

6

信号术语

终止请求。

库函数

以下是标头 signal.h 中定义的函数 -

先生。 功能说明
1 void (*signal(int sig, void (*func)(int)))(int)

该函数设置一个处理信号的函数,即信号处理程序。

2 int 加注(int sig)

该函数导致信号sig生成。sig 参数与 SIG 宏兼容。

C 库 - <stdarg.h>

stdarg.h标头定义了一个变量类型va_list和三个宏,当参数数量未知(即参数数量可变)时,可以使用这些宏来获取函数中的参数

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

库变量

以下是标头 stdarg.h 中定义的变量类型 -

先生。 变量和描述
1

va_列表

该类型适合保存三个宏va_start()、va_arg()va_end()所需的信息。

库宏

以下是头文件 stdarg.h 中定义的宏 -

先生。 宏及描述
1 无效va_start(va_list ap,last_arg)

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

2 类型 va_arg(va_list ap, 类型)

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

3 无效 va_end(va_list ap)

该宏允许使用va_start宏的具有可变参数的函数返回。如果在从函数返回之前未调用va_end,则结果未定义。

C 库 - <stddef.h>

stddef.h标头定义了各种变量类型和宏。其中许多定义也出现在其他标头中。

库变量

以下是头文件 stddef.h 中定义的变量类型 -

先生。 变量和描述
1

ptrdiff_t

这是有符号整型,是两个指针相减的结果。

2

尺寸_t

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

3

wchar_t

这是宽字符常量大小的整型。

库宏

以下是头文件 stddef.h 中定义的宏 -

先生。 宏及描述
1 无效的

该宏是空指针常量的值。

2 offsetof(类型,成员指示符)

这会产生一个 size_t 类型的常量整数,它是结构成员相对于结构开头的偏移量(以字节为单位)。成员由member-designator给出,结构名称由type给出。

C 库 - <stdio.h>

stdio.h标头定义了三个变量类型、几个宏以及用于执行输入和输出的各种函数

库变量

以下是标头 stdio.h 中定义的变量类型 -

先生。 变量和描述
1

尺寸_t

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

2

文件

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

3

fpos_t

这是一种适合存储文件中任何位置的对象类型。

库宏

以下是头文件 stdio.h 中定义的宏 -

先生。 宏及描述
1

无效的

该宏是空指针常量的值。

2

_IOFBF、_IOLBF_IONBF

这些宏扩展为具有不同值的整数常量表达式,适合用作setvbuf函数的第三个参数。

3

BUFSIZ

该宏是一个整数,表示setbuf函数使用的缓冲区的大小。

4

EOF

该宏是一个负整数,表示已到达文件末尾。

5

FOPEN_MAX

该宏是一个整数,代表系统能保证同时打开的最大文件数。

6

文件名_最大

该宏是一个整数,表示适合保存最长可能文件名的 char 数组的最长长度。如果实现没有施加限制,则该值应该是建议的最大值。

7

L_tmpnam

该宏是一个整数,表示适合保存tmpnam函数创建的最长可能临时文件名的 char 数组的最长长度。

8

SEEK_CUR、SEEK_ENDSEEK_SET

这些宏在fseek函数中用于定位文件中的不同位置。

9

TMP_MAX

该宏是函数tmpnam可以生成的唯一文件名的最大数量。

10

标准错误、标准输入标准输出

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

库函数

以下是头文件 stdio.h 中定义的函数 -

先生。 功能说明
1 int fclose(文件 *流)

关闭流。所有缓冲区都被刷新。

2 无效清除(文件*流)

清除给定流的文件结束和错误指示符。

3 int feof(文件 *流)

测试给定流的文件结束指示器。

4 int 错误(文件*流)

测试给定流的错误指示器。

5 int fflush(文件*流)

刷新流的输出缓冲区。

6 int fgetpos(FILE *stream, fpos_t *pos)

获取流的当前文件位置并将其写入 pos。

7 FILE *fopen(const char *文件名, const char *模式)

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

8 size_t fread(void *ptr, size_t 大小, size_t nmemb, FILE *stream)

将给定流中的数据读入 ptr 指向的数组中。

9 FILE *freopen(const char *文件名, const char *模式, FILE *流)

将新文件名与给定的打开流关联,同时关闭流中的旧文件。

10 int fseek(FILE *stream, long int 偏移量, int 来源)

将流的文件位置设置为给定的偏移量。参数偏移量表示从给位置查找的字节数。

11 int fsetpos(FILE *stream, const fpos_t *pos)

将给定流的文件位置设置为给定位置。参数pos是函数 fgetpos 给出的位置。

12 长整型 ftell(FILE *stream)

返回给定流的当前文件位置。

13 size_t fwrite(const void *ptr, size_t 大小, size_t nmemb, FILE *stream)

将 ptr 指向的数组中的数据写入给定流。

14 int 删除(const char *文件名)

删除给定的文件名,使其无法再访问。

15 int rename(const char *old_filename, const char *new_filename)

导致 old_filename 引用的文件名更改为 new_filename。

16 无效倒带(文件*流)

将文件位置设置为给定流的文件的开头。

17 号 无效setbuf(文件*流,字符*缓冲区)

定义如何缓冲流。

18 int setvbuf(FILE *stream, char *buffer, int 模式, size_t 大小)

另一个定义如何缓冲流的函数。

19 文件*tmpfile(无效)

以二进制更新模式 (wb+) 创建临时文件。

20 字符 *tmpnam(字符 *str)

生成并返回不存在的有效临时文件名。

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

将格式化输出发送到流。

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

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

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

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

24 int vfprintf(FILE *stream, const char *format, va_​​list arg)

使用参数列表将格式化输出发送到流。

25 int vprintf(const char *format, va_​​list arg)

使用参数列表将格式化输出发送到 stdout。

26 int vsprintf(char *str, const char *format, va_​​list arg)

使用参数列表将格式化输出发送到字符串。

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

从流中读取格式化输入。

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

从 stdin 读取格式化输入。

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

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

30 int fgetc(文件 *流)

从指定的流中获取下一个字符(无符号字符)并前进该流的位置指示符。

31 char *fgets(char *str, int n, FILE *stream)

从指定流中读取一行并将其存储到 str 指向的字符串中。当读取 (n-1) 个字符、读取换行符或到达文件末尾(以先到者为准)时,它会停止。

32 int fputc(int char, FILE *stream)

将参数 char 指定的字符(无符号字符)写入指定的流,并推进流的位置指示符。

33 int fputs(const char *str, FILE *stream)

将字符串写入指定的流,直到但不包括空字符。

34 int getc(文件 *流)

从指定的流中获取下一个字符(无符号字符)并前进该流的位置指示符。

35 int getchar(无效)

从 stdin 获取一个字符(无符号字符)。

36 char *gets(char *str)

从 stdin 读取一行并将其存储到 str 指向的字符串中。当读取换行符或到达文件末尾时(以先到者为准),它会停止。

37 int putc(int char, FILE *stream)

将参数 char 指定的字符(无符号字符)写入指定的流,并推进流的位置指示符。

38 int putchar(int char)

将参数 char 指定的字符(无符号字符)写入标准输出。

39 int put(const char *str)

将字符串写入标准输出,最多但不包括空字符。换行符将附加到输出中。

40 int ungetc(int char, FILE *stream)

将字符 char(无符号字符)推送到指定的流上,以便读取下一个字符。

41 无效 perror(const char *str)

将描述性错误消息打印到 stderr。首先打印字符串 str,后跟一个冒号,然后是一个空格。

C 库 - <stdlib.h>

stdlib.h标头定义了四个变量类型、几个宏以及用于执行通用功能的各种函数

库变量

以下是头文件 stdlib.h 中定义的变量类型 -

先生。 变量和描述
1

尺寸_t

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

2

wchar_t

这是一个宽字符常量大小的整数类型。

3

div_t

这是div函数返回的结构。

4

LDIV_T

这是ldiv函数返回的结构。

库宏

以下是头文件 stdlib.h 中定义的宏 -

先生。 宏及描述
1

无效的

该宏是空指针常量的值。

2

退出失败

这是退出函数在失败时返回的值。

3

退出_成功

这是退出函数成功时返回的值。

4

兰德_最大值

该宏是rand函数返回的最大值。

5

MB_CUR_MAX

该宏是多字节字符集中的最大字节数,不能大于MB_LEN_MAX。

库函数

以下是头文件 stlib.h 中定义的函数 -

先生。 功能说明
1 双 atof(const char *str)

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

2 int atoi(const char *str)

将参数str指向的字符串转换为整数(int 类型)。

3 长整型 atol(const char *str)

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

4 双 strtod(const char *str, char **endptr)

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

5 long int strtol(const char *str, char **endptr, int base)

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

6 无符号长整型 strtoul(const char *str, char **endptr, int base)

将参数str指向的字符串转换为无符号长整型(类型为 unsigned long int)。

7 void *calloc(size_t nitems, size_t 大小)

分配所请求的内存并返回指向它的指针。

8 无效自由(无效* ptr

释放先前通过调用calloc、mallocrealloc分配的内存。

9 void *malloc(size_t 大小)

分配所请求的内存并返回指向它的指针。

10 void *realloc(void *ptr, size_t 大小)

尝试调整 ptr 指向的内存块的大小,该内存块先前是通过调用malloccalloc分配的。

11 无效中止(无效)

导致程序异常终止。

12 int atexit(void (*func)(void))

当程序正常终止时,使指定的函数func被调用。

13 无效退出(int状态)

导致程序正常终止。

14 char *getenv(const char *name)

搜索名称指向的环境字符串并将关联值返回到该字符串。

15 int 系统(const char *字符串)

由字符串指定的命令被传递到主机环境以由命令处理器执行。

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

执行二分搜索。

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

对数组进行排序。

18 int 绝对值(int x)

返回 x 的绝对值。

19 div_t div(int 数字, int 分母)

将 numer(分子)除以 denom(分母)。

20 长整型实验室(长整型 x)

返回 x 的绝对值。

21 ldiv_t ldiv(长整型数字,长整型分母)

将 numer(分子)除以 denom(分母)。

22 int 兰特(无效)

返回 0 到RAND_MAX范围内的伪随机数。

23 void srand(无符号整型种子)

此函数为函数rand使用的随机数生成器提供种子。

24 int mblen(const char *str, size_t n)

返回参数str指向的多字节字符的长度。

25 size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)

将参数str指向的多字节字符字符串转换为pwcs指向的数组。

26 int mbtowc(whcar_t *pwc, const char *str, size_t n)

检查参数str指向的多字节字符。

27 size_t wcstombs(char *str, const wchar_t *pwcs, size_t n)

将数组pwcs中存储的代码转换为多字节字符并将它们存储在字符串str中。

28 int wctomb(char *str, wchar_t wchar)

检查与参数wchar给出的多字节字符对应的代码。

C 库 - <string.h>

string.h标头定义了一种变量类型、一个宏以及用于操作字符数组的各种函数。

库变量

以下是标头 string.h 中定义的变量类型 -

先生。 变量和描述
1

尺寸_t

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

库宏

以下是头文件 string.h 中定义的宏 -

先生。 宏及描述
1

无效的

该宏是空指针常量的值。

库函数

以下是头文件 string.h 中定义的函数 -

先生。 功能说明
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)

比较str1str2的前 n 个字节。

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

将 n 个字符从 src 复制到dest

4 void *memmove(void *dest, const void *src, size_t n)

另一个将 n 个字符从str2复制到str1 的函数。

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

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

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

将src指向的字符串附加到dest指向的字符串的末尾。