logo资料库

C语言标准函数库详解.pdf

第1页 / 共116页
第2页 / 共116页
第3页 / 共116页
第4页 / 共116页
第5页 / 共116页
第6页 / 共116页
第7页 / 共116页
第8页 / 共116页
资料共116页,剩余部分请下载后查看
c 语言函数库 目录 第一章( C 标准库) ............................................................................................. 4 1. :诊断 ................................................................................................ 4 2. :字符类别测试 ................................................................................ 5 3. :错误处理 ......................................................................................... 5 4. :整型常量 ........................................................................................ 6 5. :地域环境 ........................................................................................ 6 6. :数学函数 ......................................................................................... 7 7. :非局部跳转 .................................................................................. 8 8. :信号 ................................................................................................ 9 9. :可变参数表 ................................................................................. 11 10. :公共定义 ................................................................................... 11 11. :输入输出 ..................................................................................... 12 12. :实用函数 .................................................................................... 13 13. :日期与时间函数 .......................................................................... 13 第二章( IO 函数) .................................................................................................... 14 clearerr:复位错误标志函数 ..................................................................................... 15 feof:检测文件结束符函数 ....................................................................................... 16 ferror:检测流上的错误函数 .................................................................................... 17 fflush:清除文件缓冲区函数 .................................................................................... 18 fgetc:从流中读取字符函数 ...................................................................................... 19 fgetpos:取得当前文件的句柄函数 .......................................................................... 20 fgets:从流中读取字符串函数 .................................................................................. 21 fopen、 fclose:文件的打开与关闭函数 ................................................................... 22 fprintf :格式化输出函数 ........................................................................................... 23 fputc:向流中输出字符函数 ..................................................................................... 25 fputs:向流中输出字符串函数 .................................................................................. 25 fread:从流中读取字符串函数 ................................................................................. 26 freopen:替换文件中数据流函数 ............................................................................. 27 fscanf:格式化输入函数 ............................................................................................ 28 fseek:文件指针定位函数 ......................................................................................... 28 fsetpos:定位流上的文件指针函数 .......................................................................... 30 ftell:返回当前文件指针位置函数 ........................................................................... 31 fwrite:向文件写入数据函数 .................................................................................... 31 getc:从流中读取字符函数 ....................................................................................... 32 getchar:从标准输入文件中读取字符函数 .............................................................. 33 gets:从标准输入文件中读取字符串函数 ............................................................... 34 perror:打印系统错误信息函数 ................................................................................ 34 printf:产生格式化输出的函数 ................................................................................. 35 putc:向指定流中输出字符函数 ............................................................................... 36 putchar:向标准输出文件上输出字符 ...................................................................... 37 1
puts:将字符串输出到终端函数 ............................................................................... 37 remove:删除文件函数 .............................................................................................. 38 rename:重命名文件函数 .......................................................................................... 38 rewind:重置文件指针函数 ...................................................................................... 39 scanf:格式化输入函数 ............................................................................................. 40 setbuf、 setvbuf:指定文件流的缓冲区函数 ............................................................ 41 sprintf:向字符串写入格式化数据函数 ................................................................... 42 sscanf:从缓冲区中读格式化字符串函数 ................................................................ 42 tmpfile:创建临时文件函数 ...................................................................................... 43 tmpnam:创建临时文件名函数 ................................................................................ 44 ungetc:把字符退回到输入流函数 ........................................................................... 44 第三章(字符处理函数) ................................................................................... 46 isalnum:检查字符是否是字母或数字 ..................................................................... 46 isalpha:检查字符是否是字母 .................................................................................. 47 isascii:检查字符是否是 ASCII 码 ........................................................................... 48 iscntrl:检查字符是否是控制字符 ............................................................................ 48 isdigit:检查字符是否是数字字符 ............................................................................ 49 isgraph:检查字符是否是可打印字符(不含空格) .............................................. 50 islower:检查字符是否是小写字母 .......................................................................... 50 isprint:检查字符是否是可打印字符(含空格) ................................................... 51 ispunct:检查字符是否是标点字符 .......................................................................... 52 isspace:检查字符是否是空格符 .............................................................................. 52 isupper:检查字符是否是大写字母 .......................................................................... 53 isxdigit:检查字符是否是十六进制数字字符 .......................................................... 54 toascii:将字符转换为 ASCII 码............................................................................... 54 tolower:将大写字母转换为小写字母 ..................................................................... 55 toupper:将小写字母转换为大写字母 ..................................................................... 56 第四章(字符串函数) ....................................................................................... 56 atof:字符串转浮点型函数 ....................................................................................... 57 atoi:字符串转整型函数 ............................................................................................ 58 atol:字符串转长整型函数 ........................................................................................ 58 memchr:字符搜索函数 ............................................................................................ 59 memcmp:字符串比较函数 ....................................................................................... 60 memcpy: 字符串拷贝函数 ...................................................................................... 61 memmove: 字块移动函数 ....................................................................................... 62 memset:字符加载函数 ............................................................................................. 63 strcat:字符串连接函数 ............................................................................................. 64 strchr:字符串中字符首次匹配函数 ........................................................................ 64 strcmp:字符串比较函数 ........................................................................................... 65 strcpy:字符串拷贝函数 ............................................................................................ 66 strcspn:字符集逆匹配函数 ...................................................................................... 67 strdup:字符串新建拷贝函数 .................................................................................... 68 strerror:字符串错误信息函数 .................................................................................. 69 strlen:计算字符串长度函数 ..................................................................................... 70 2
strlwr:字符串小写转换函数 .................................................................................... 71 strncat:字符串连接函数 ........................................................................................... 71 strncmp:字符串子串比较函数 ................................................................................. 72 strncpy:字符串子串拷贝函数 .................................................................................. 73 strpbrk:字符集字符匹配函数 .................................................................................. 74 strrchr:字符串中字符末次匹配函数 ....................................................................... 75 strrev:字符串倒转函数 ............................................................................................ 76 strset:字符串设定函数 ............................................................................................. 77 strspn:字符集匹配函数 ............................................................................................ 78 strstr:字符串匹配函数 .............................................................................................. 79 strtod:字符串转换成双精度函数 ............................................................................ 79 strtok:字符串分隔函数 ............................................................................................ 81 strtol:字符串转换成长整型函数 ............................................................................. 82 strtoul:字符串转换成无符号长整型函数 ............................................................... 83 strupr:字符串大写转换函数 .................................................................................... 84 strupr:字符串大写转换函数 .................................................................................... 85 第五章(数学函数) ........................................................................................... 85 abs、labs、 fabs:求绝对值函数 ............................................................................... 86 acos: 反余弦函数 ..................................................................................................... 87 asin: 反正弦函数 ..................................................................................................... 87 atan:反正切函数 ....................................................................................................... 88 atan2:反正切函数 2 .................................................................................................. 88 ceil:向上舍入函数 .................................................................................................... 89 cos :余弦函数 .......................................................................................................... 89 cosh: 双曲余弦函数 ................................................................................................ 90 div、ldiv:除法函数 .................................................................................................. 90 exp:求 e 的 x 次幂函数 ............................................................................................ 92 floor:向下舍入函数 .................................................................................................. 92 fmod:求模函数 ......................................................................................................... 93 frexp:分解浮点数函数 ............................................................................................. 93 hypot:求直角三角形斜边长函数 ............................................................................ 94 ldexp:装载浮点数函数 ............................................................................................. 94 log、log10:对数函数 ............................................................................................... 95 modf:分解双精度数函数 ......................................................................................... 96 pow、pow10:指数函数 ............................................................................................ 96 rand:产生随机整数函数 .......................................................................................... 97 sin:正弦函数 ............................................................................................................. 97 sinh: 双曲正弦函数 ................................................................................................. 98 sqrt:开平方函数 ........................................................................................................ 98 srand:设置随机时间的种子函数 ............................................................................. 99 tan: 正切函数 ......................................................................................................... 100 tanh:双曲正切函数 ................................................................................................. 100 第六章(时间和日期函数) ............................................................................. 101 asctime:日期和时间转换函数 ............................................................................... 101 3
clock:测定运行时间函数 ....................................................................................... 102 ctime:时间转换函数 ............................................................................................... 103 difftime :计算时间差函数 ....................................................................................... 103 gmtime: 将日历时间转换为 GMT ....................................................................... 104 localtime:把日期和时间转变为结构 ..................................................................... 105 mktime:时间类型转换函数 ................................................................................... 105 time:获取系统时间函数 ........................................................................................ 107 第七章(其它函数) ......................................................................................... 107 abort:异常终止进程函数 ....................................................................................... 107 atexit:注册终止函数 ............................................................................................... 108 bsearch:二分搜索函数 ........................................................................................... 109 calloc:分配主存储器函数 ...................................................................................... 110 exit:正常终止进程函数 .......................................................................................... 111 free:释放内存函数 ................................................................................................. 112 getenv:获取环境变量 ............................................................................................. 113 malloc:动态分配内存函数 ..................................................................................... 113 qsort:快速排序函数 ................................................................................................ 114 realloc:重新分配主存函数 ..................................................................................... 115 第一章( C 标准库) 1. :诊断 2. :字符类别测试 3. :错误处理 4. :整型常量 5. :地域环境 6. :数学函数 7. :非局部跳转 8. :信号 9. :可变参数表 10. :公共定义 11. :输入输出 12. :实用函数 13. :日期与时间函数 1. :诊断 中只定义了一个带参的宏 assert,其定义形式如下: 4
void assert (int 表达式 ) assert 宏用于为程序增加诊断功能,它可以测试一个条件并可能使程序终止。在执行语 句: assert(表达式 ); 时,如果表达式为 0,则在终端显示一条信息: Assertion failed: 0, file 源文件名 , line 行号 Abnormal program termination 然后调用 abort 终止程序的执行。 在 中,带参宏 assert 是被定义为条件编译的,如果在源文件中定义了宏 NDEBUG,则即使包含了头文件 , assert 宏也将被忽略。 2. :字符类别测试 在头文件 中定义了一些测试字符的函数。 在这些函数中, 每个函数的参数都是 整型 int ,而每个参数的值或者为 EOF,或者为 char 类型的字符。 中定义的标准函 数列表如下: 中定义的函数 函数定义 , 函数功能简介 int isalnum(int c), 检查字符是否是字母或数字 int isalpha(int c), 检查字符是否是字母 int isascii(int c), 检查字符是否是 ASCII 码 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 toupper(int c), 将小写字母转换为大写字母 int tolower(int c), 将大写字母转换为小写字母 , , 有关 中定义的这些标准函数以及一些常用的非标准字符处理函数将在第十一 章中进行详细地介绍。 3. :错误处理 中定义了两个常量,一个变量。 5
1、 EDOM 它表示数学领域错误的错误代码。 2、 ERANGE 它表示结果超出范围的错误代码。 3、 errno 这是一个变量,该值被设置成用来指出系统调用的错误类型。 4. :整型常量 在头文件 中定义了一些表示整型大小的常量。 下面给出这些常量的字符表示以 及含义,见下表。 中定义的字符常量字符常量 , 取值 , 含义 CHAR_BIT, 8, char类型的位数 CHAR_MAX, 255或 127, char 类型最大值 CHAR_MIN, 0 或 -127, char 类型最小值 INT_MIN, -32767, int 类型最小值 INT_MAX , 32767, int 类型最大值 LONG_MAX, 2147483647, long 类型最大值 LONG_MIN, -2147483647, long 类型最小值 SCHAR_MAX, 127, signed char 类型最大值 SCHAR_MIN, -127, signed char 类型最小值 SHRT_MAX, 32767, short 类型的最大值 SHRT_MIN, -32767, short 类型的最小值 UCHAR_MAX, 255, unsigned char 类型最大值 UINT_MAX, 65535, unsigned int 类型最大值 ULONG_MAX, 4294967295, unsigned long 类型最大值 USHRT_MAX, 65535, unsigned short 类型的最大值 5. :地域环境 在 中,定义了 7 个常量,一个结构, 2 个函数。 1、常量的定义 LC_ALL:传递给 setlocale 的第一个参数,指定要更改该 locale 的哪个方面。 LC_COLLATE: strcoll 和 strxfrm 的行为。 LC_CTYPE:字符处理函数。 LC_MONETARY: localeconv 返回的货币信息。 LC_NUMERIC: localeconv 返回的小数点和货币信息。 LC_TIME:strftime 的行为。 以上扩展成具有唯一取值的整型常数表达式,可作为 setlocale 的第一个参数。 6
NULL:由实现环境定义的空指针。 2、 struct lconv 结构 该结构用于存储和表示当前 locale 的设置。其结构定义如下: struct lconv { 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; }; 3、函数 struct Iconv *localeconv(void); 函数 localeconv 将一个 struct Iconv 类型的对象的数据成员设置成为按照当前地域环境的 有关规则进行数量格式化后的相应值。 char *setlocale(int category,char * locale); 函数 setlocale 用于更改和查询程序的整个当前地域环境或部分设置。地域环境变量由 参数 category(上面定义的 6 个常量 )和 locale 指定。 6. :数学函数 在 中定义了一些数学函数和宏,用来实现不同种类的数学运算。下面给出 中标准数学函数的函数定义及功能简介,见下表。 中定义的函数 函数定义 , 函数功能简介 double exp(double x);, 指数运算函数 , 求 e 的 x 次幂函数 double log(double x), 对数函数 ln(x) double log10(double x); , 对数函数 log double pow(double x, double y);, 指数函数 (x 的 y 次方 ) double sqrt(double x); , 计算平方根函数 double ceil(double x); , 向上舍入函数 7
double floor(double x);, 向下舍入函数 double fabs(double x);, 求浮点数的绝对值 double ldexp(double x, int n); , 装载浮点数函数 double frexp(double x, int* exp); , 分解浮点数函数 double modf(double x, double* ip); , 分解双精度数函数 double fmod(double x, double y);, 求模函数 double sin(double x); , 计算 x 的正弦值函数 double cos(double x);, 计算 x 的余弦值函数 double tan(double x);, 计算 x 的正切值函数 double asin(double x);, 计算 x 的反正弦函数 double acos(double x); , 计算 x 的反余弦函数 double atan(double x); , 反正切函数 1 double atan2(double y, double x); , 反正切函数 2 double sinh(double x); , 计算 x 的双曲正弦值 double cosh(double x); , 计算 x 的双曲余弦值 double tanh(double x); , 计算 x 的双曲正切值 在标准库中,还有一些与数学计算有关的函数定义在其他头文件中。 7. :非局部跳转 在头文件 中定义了一种特别的函数调用和函数返回顺序的方式。这种方式不 同于以往的函数调用和返回顺序,它允许程序流程立即从一个深层嵌套的函数中返回。 中定义了两个宏: int setjmp(jmp_buf env); /* 设置调转点 */ 和 longjmp(jmp_buf jmpb, int retval); /* 跳转 */ 宏 setjmp 的功能是将当前程序的状态保存在结构 env ,为调用宏 longjmp 设置一个跳 转点。 setjmp 将当前信息保存在 env 中供 longjmp 使用。其中 env 是 jmp_buf 结构类型的, 该结构定义为: typedef struct { unsigned j_sp; unsigned j_ss; unsigned j_flag; unsigned j_cs; unsigned j_ip; unsigned j_bp; unsigned j_di; unsigned j_es; unsigned j_si; unsigned j_ds; jmp_buf[1]; 直接调用 setjmp 时,返回值为 0,这一般用于初始化(设置跳转点时) 。以后再调用 } 8
分享到:
收藏