C-标准库
参考地址
https://www.runoob.com/cprogramming/c-standard-library.html
一.<assert.h>
void assert(int expression);
-
这实际上是一个宏,不是一个函数,可用于在 C 程序中添加诊断。
-
expression -- 这可以是一个变量或任何 C 表达式。如果 expression 为 TRUE,assert() 不执行任何动作。
-
如果 expression 为 FALSE,assert() 会在标准错误 stderr 上显示错误消息,并中止程序执行。
二.<ctype.h>
库函数
//该函数检查所传的字符是否是字母和数字。
int isalnum(int c)
//该函数检查所传的字符是否是字母。
int isalpha(int c)
//该函数检查所传的字符是否是控制字符。
int iscntrl(int c)
//该函数检查所传的字符是否是十进制数字。
int isdigit(int c)
//该函数检查所传的字符是否有图形表示法。
int isgraph(int c)
//该函数检查所传的字符是否是小写字母。
int islower(int c)
//该函数检查所传的字符是否是可打印的。
int isprint(int c)
//该函数检查所传的字符是否是标点符号字符。
int ispunct(int c)
//该函数检查所传的字符是否是空白字符。
int isspace(int c)
//该函数检查所传的字符是否是大写字母。
int isupper(int c)
//该函数检查所传的字符是否是十六进制数字。
int isxdigit(int c)
//该函数把大写字母转换为小写字母。
int tolower(int c)
//该函数把小写字母转换为大写字母。
int toupper(int c)
-
C 标准库的 ctype.h 头文件提供了一些函数,可用于测试和映射字符。
-
这些函数接受 int 作为参数,它的值必须是 EOF 或表示为一个无符号字符。
-
如果参数 c 满足描述的条件,则这些函数返回非零(true)。如果参数 c 不满足描述的条件,则这些函数返回零。
字符类
三.<errno.h>
-
C 标准库的 errno.h 头文件定义了整数变量 errno,它是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。
-
在程序启动时,errno 设置为零,C 标准库中的特定函数修改它的值为一些非零值以表示某些类型的错误。
库宏:
//这是通过系统调用设置的宏,在错误事件中的某些库函数表明了什么发生了错误。
extern int errno
//这个宏表示一个域错误,它在输入参数超出数学函数定义的域时发生,errno 被设置为 EDOM。
EDOM Domain Error(#define EDOM some_value)
//这个宏表示一个范围错误,它在输入参数超出数学函数定义的范围时发生,errno 被设置为 ERANGE。
ERANGE Range Erro (#define ERANGE some_value)
//errno 宏的用法
#include <stdio.h>
#include <errno.h>
#include <string.h>
extern int errno ;
int main (){
FILE *fp;
fp = fopen("file.txt", "r");
if( fp == NULL ) {
fprintf(stderr, "Value of errno: %d\n", errno);
fprintf(stderr, "Error opening file: %s\n", strerror(errno));
}
else {
fclose(fp);
}
return(0);
}
//运行结果
Value of errno: 2
Error opening file: No such file or directory
//EDOM 宏的用法
#include <stdio.h>
#include <errno.h>
#include <math.h>
int main(){
double val;
errno = 0;
val = sqrt(-10);
if(errno == EDOM) {
printf("Invalid value \n");
}
else {
printf("Valid value\n");
}
errno = 0;
val = sqrt(10);
if(errno == EDOM) {
printf("Invalid value\n");
}
else {
printf("Valid value\n");
}
return(0);
}
//运行结果
Invalid value
Valid value
//ERANGE 宏的用法
#include <stdio.h>
#include <errno.h>
#include <math.h>
int main(){
double x;
double value;
x = 2.000000;
value = log(x);
if( errno == ERANGE ) {
printf("Log(%f) is out of range\n", x);
}
else {
printf("Log(%f) = %f\n", x, value);
}
x = 1.000000;
value = log(x);
if( errno == ERANGE ) {
printf("Log(%f) is out of range\n", x);
}
else {
printf("Log(%f) = %f\n", x, value);
}
x = 0.000000;
value = log(x);
if( errno == ERANGE ) {
printf("Log(%f) is out of range\n", x);
}
else {
printf("Log(%f) = %f\n", x, value);
}
return 0;
}
//运行结果
Log(2.000000) = 0.693147
Log(1.000000) = 0.000000
Log(0.000000) = -inf
四.<float.h>
C 标准库的 float.h 头文件包含了一组与浮点值相关的依赖于平台的常量。
库宏
五.<limits.h>
简介:
-
limits.h 头文件决定了各种变量类型的各种属性。定义在该头文件中的宏限制了各种变量类型(比如 char、int 和 long)的值。
-
这些限制指定了变量不能存储任何超出这些限制的值,例如一个无符号可以存储的最大值是 255。
库宏:
六.<locale.h>
简介:
locale.h 头文件定义了特定地域的设置,比如日期格式和货币符号。
库宏:
库函数:
//设置或读取地域化信息。
char *setlocale(int category, const char *locale)
//设置或读取地域化信息。
struct 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
七. <math.h>
简介:
-
math.h 头文件定义了各种数学函数和一个宏。
-
在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果。
库宏:
库函数:
八.<setjmp.h>
简介:
setjmp.h 头文件定义了宏 setjmp()、函数 longjmp() 和变量类型 jmp_buf,该变量类型会绕过正常的函数调用和返回规则。
库变量:
库宏:
库函数:
九.<signal.h>
简介:
signal.h 头文件定义了一个变量类型 sig_atomic_t、两个函数调用和一些宏来处理程序执行期间报告的不同信号。
库变量:
库宏:
库函数:
十.<stdarg.h>
简介:
stdarg.h 头文件定义了一个变量类型 va_list 和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数。可变参数的函数通在参数列表的末尾是使用省略号(,...)定义的。
库变量:
库宏:
十一. <stddef.h>
简介:
stddef .h 头文件定义了各种变量类型和宏。这些定义中的大部分也出现在其它头文件中。
库变量:
库宏:
十二.<stdio.h>
简介:
stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。
库变量:
库宏:
库函数:
十三.<stdlib.h>
简介:
stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。
库变量:
库宏:
库函数:
十四.<string.h>
简介:
string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。
库变量:
库宏:
库函数:
十五.<time.h>
简介:
time.h 头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。
库变量:
库宏:
库函数: