C语言参考手册之函数库

### C语言参考手册之函数库 #### 概述 C语言是一种广泛使用的编程语言,尤其在系统编程领域占据着重要地位。为了方便开发者利用C语言进行高效编程,C语言提供了丰富的标准库支持。这些标准库涵盖了文件操作、输入输出、字符串处理、数学计算等多个方面,极大地简化了开发者的编码工作。本文将详细介绍C语言标准库中的关键组成部分及其用法。 #### B.1 输入与输出 `<stdio.h>` **B.1.1 文件操作** - **`fopen()`**:用于打开一个文件,可以指定打开模式,如只读、写入等。 - **`freopen()`**:重新定向一个流到一个新的文件,通常用于重定向标准输入输出。 - **`fflush()`**:刷新一个流的缓冲区。 - **`fclose()`**:关闭一个文件流,并释放与之相关的资源。 - **`remove()`**:删除一个文件。 - **`rename()`**:重命名或移动一个文件。 - **`tmpfile()`**:创建一个临时文件。 - **`tmpnam()`**:生成一个临时文件名。 - **`setvbuf()`**:设置缓冲方式。 - **`setbuf()`**:为流设置或清除缓冲区。 **B.1.2 格式化输出** - **`printf()`**:格式化输出到标准输出设备。 - **`fprintf()`**:格式化输出到指定输出流。 - **`sprintf()`**:格式化输出到一个字符串。 - **`vprintf()`**:可变参数列表的`printf()`。 - **`vfprintf()`**:可变参数列表的`fprintf()`。 - **`vsprintf()`**:可变参数列表的`sprintf()`。 **B.1.3 格式化输入** - **`fscanf()`**:从指定输入流读取格式化的数据。 - **`scanf()`**:从标准输入设备读取格式化的数据。 - **`sscanf()`**:从一个字符串读取格式化的数据。 **B.1.4 字符输入/输出函数** - **`fgetc()`**:从流读取单个字符。 - **`fgets()`**:从流读取一行文本。 - **`fputc()`**:向流写入单个字符。 - **`fputs()`**:向流写入字符串。 - **`getc()`**:同`fgetc()`,但使用标准输入流。 - **`gets()`**:从标准输入读取一行文本。(不推荐使用,因为它可能引发缓冲区溢出) - **`putc()`**:同`fputc()`,但使用标准输出流。 - **`puts()`**:向标准输出写入字符串。 - **`putchar()`**:向标准输出写入单个字符。 - **`ungetc()`**:将字符放回流中。 **B.1.5 直接输入输出** - **`fread()`**:从流读取一系列数据项。 - **`fwrite()`**:向流写入一系列数据项。 **B.1.6 文件定位函数** - **`fseek()`**:移动文件位置指针。 - **`ftell()`**:获取文件位置指针的当前位置。 - **`rewind()`**:将文件位置指针重置到文件开头。 - **`fgetpos()`**:保存文件位置指针的当前位置。 - **`fsetpos()`**:设置文件位置指针的位置。 **B.1.7 错误处理函数** - **`clearerr()`**:清除错误标志。 - **`feof()`**:检查是否到达文件结尾。 - **`ferror()`**:检查是否有错误发生。 - **`perror()`**:打印错误消息。 #### B.2 字符类别测试 `<ctype.h>` - **`isalnum()`**:判断字符是否是字母数字字符。 - **`isalpha()`**:判断字符是否是字母。 - **`iscntrl()`**:判断字符是否是控制字符。 - **`isdigit()`**:判断字符是否是数字。 - **`islower()`**:判断字符是否是小写字母。 - **`isupper()`**:判断字符是否是大写字母。 - **`tolower()`**:将字符转换为小写形式。 - **`toupper()`**:将字符转换为大写形式。 #### B.3 字符串函数 `<string.h>` - **`strcpy()`**:复制字符串。 - **`strncpy()`**:复制字符串,限制最大字符数。 - **`strcat()`**:连接字符串。 - **`strncat()`**:连接字符串,限制最大字符数。 - **`strcmp()`**:比较两个字符串。 - **`strncmp()`**:比较两个字符串,限制比较的最大字符数。 - **`strchr()`**:查找字符串中首次出现某个字符的位置。 - **`strrchr()`**:查找字符串中最后一次出现某个字符的位置。 - **`strspn()`**:返回匹配的前缀长度。 - **`strcspn()`**:返回不匹配的前缀长度。 - **`strpbrk()`**:查找字符串中首次出现某个集合中的字符的位置。 - **`strstr()`**:在字符串中查找子串的位置。 - **`strlen()`**:获取字符串长度。 - **`strerror()`**:返回错误消息字符串。 - **`strtok()`**:分割字符串。 #### B.4 数学函数 `<math.h>` - **`sin()`**:计算正弦值。 - **`cos()`**:计算余弦值。 - **`tan()`**:计算正切值。 - **`asin()`**:计算反正弦值。 - **`acos()`**:计算反余弦值。 - **`atan()`**:计算反正切值。 - **`atan2()`**:计算反正切值(双参数版本)。 - **`sinh()`**:计算双曲正弦值。 - **`cosh()`**:计算双曲余弦值。 - **`tanh()`**:计算双曲正切值。 - **`exp()`**:计算指数函数。 - **`log()`**:计算自然对数。 - **`log10()`**:计算以10为底的对数。 - **`pow()`**:计算幂。 - **`sqrt()`**:计算平方根。 - **`ceil()`**:向上取整。 - **`floor()`**:向下取整。 - **`fabs()`**:计算绝对值。 - **`ldexp()`**:乘以2的指数。 - **`frexp()`**:分解浮点数。 - **`modf()`**:分离浮点数的整数部分和小数部分。 - **`fmod()`**:计算余数。 #### B.5 实用函数 `<stdlib.h>` - **`atof()`**:将字符串转换为浮点数。 - **`atoi()`**:将字符串转换为整数。 - **`atol()`**:将字符串转换为长整数。 - **`strtod()`**:将字符串转换为双精度浮点数。 - **`strtoul()`**:将字符串转换为无符号长整数。 - **`rand()`**:生成随机数。 - **`srand()`**:初始化随机数生成器。 - **`calloc()`**:分配内存并初始化为零。 - **`malloc()`**:分配内存。 - **`realloc()`**:重新分配内存。 - **`free()`**:释放内存。 - **`abort()`**:终止程序执行。 - **`exit()`**:退出程序。 - **`atexit()`**:注册程序退出时调用的函数。 - **`system()`**:执行外部命令。 - **`getenv()`**:获取环境变量。 - **`bsearch()`**:二分搜索排序数组。 - **`qsort()`**:快速排序数组。 - **`abs()`**:计算绝对值(整数)。 - **`labs()`**:计算绝对值(长整数)。 - **`div()`**:整数除法。 - **`ldiv()`**:长整数除法。 #### B.6 诊断 `<assert.h>` - **`assert()`**:断言表达式的真值性,主要用于调试阶段。 #### B.7 可变参数表 `<stdarg.h>` - **`va_list`**:表示可变参数列表的类型。 - **`va_start`**:初始化可变参数列表。 - **`va_end`**:清理可变参数列表。 #### B.8 非局部跳转 `<setjmp.h>` - **`setjmp()`**:保存当前程序状态。 - **`longjmp()`**:恢复之前保存的状态。 #### B.9 信号 `<signal.h>` - **`signal()`**:设置信号处理函数。 - **`raise()`**:发送信号给进程。 #### B.10 日期与时间函数 `<time.h>` - **`clock()`**:返回程序运行时间。 - **`time()`**:返回当前时间。 - **`difftime()`**:计算两个时间差。 - **`mktime()`**:将结构体tm转换为时间值。 - **`asctime()`**:将时间值转换为字符串。 - **`ctime()`**:将时间值转换为字符串。 - **`strftime()`**:格式化时间值为字符串。 #### B.11 与具体实现相关的限制 `<limits.h>` 和 `<float.h>` - **`limits.h`**:定义了整型大小的常量。 - **`float.h`**:定义了浮点运算的一些常量。 通过以上对C语言标准库的详细解析,我们可以看出C语言标准库提供了非常全面的支持,几乎覆盖了日常编程中的各个方面。对于学习C语言的开发者来说,熟练掌握这些库函数是非常重要的。














剩余14页未读,继续阅读

- Jenkins1112015-09-17一般般吧,不太实用

- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- jetlinks-community-物联网设备接入与数据处理资源
- 安徽专升本计算机真题模拟和答案.doc
- 新版计算机病毒防治技术(1).pptx
- 单片机的异步串行通信技术.doc
- 2022文明使用网络演讲稿.docx
- 宝钢集团有限公司人才开发院管理细则---人才开发院门户网站.docx
- VB员工请假管理系统.doc
- 自动化仪表单体调试方案(1).docx
- 天气预报app-API接口实战资源
- 2023年吉林省下半年安全工程师安全生产法煤粉喷吹系统安全技术模拟试题.docx
- 解析电力系统中继电保护的自动化策略刘尊飞(1).docx
- 会计信息化对高校财务工作影响的研究(1).docx
- 2020年新编AutoCAD2010全套教程[定稿版G79R].docx
- 2021年结构工程师考试计算机应用基础备考讲义.doc
- 计算机信息安全与保密知识讲座演示ppt(1).pptx
- 宝树建材网站方案.doc


