C语言编程常用头文件
- 格式:docx
- 大小:15.41 KB
- 文档页数:7
C语言的头文件常用于声明函数、变量、宏和结构体等的定义,以便在多个源文件中共享和重用这些声明。
以下是C语言头文件的一般写法:
c
#ifndef HEADER_NAME_H
#define HEADER_NAME_H
// 在这里写下头文件的内容
#endif /* HEADER_NAME_H */
头文件的命名通常使用全大写字母,可以根据需要选择有意义的名称。
头文件中应该包含以下内容:
防止多重包含:使用条件编译指令#ifndef、#define 和#endif,以避免头文件被重复包含。
函数声明:声明函数的原型,例如int add(int a, int b);。
变量声明:声明变量的外部链接性,例如extern int globalVariable;。
宏定义:定义常量、宏函数和条件编译宏等,例如#define PI 3.14159。
结构体定义:定义结构体类型,例如struct Person { char name[20]; int age; };。
请注意以下几点:
头文件中通常只包含声明,而不包含具体的实现代码。
实现代码应该在对应的源文件中编写。
头文件应该包含所需的其他头文件,以确保所有依赖关系得到满足。
在编写头文件时,应使用预处理指令#ifdef 和#ifndef 来避免重复定义和冲突。
头文件应该尽量精简和模块化,只包含与该头文件相关的声明。
在头文件中避免定义全局变量,因为头文件可能会被多个源文件包含,这样会导致变量的重复定义。
正确编写和组织头文件可以提高代码的可读性、可维护性和重用性,推荐遵循良好的编码规范和项目约定。
C语言中的头文件是包含在源代码文件中以便在编译时进行预处理的文件。
头文件通常包含函数、宏定义、结构体声明和其他重要的代码片段,以便在多个源文件中共享和重用。
一些常见的C语言头文件包括:
1. `<stdio.h>`:包含输入输出函数,如`printf` 和`scanf`。
2. `<stdlib.h>`:包含内存分配和释放函数,如`malloc` 和`free`,以及其他常用的函数。
3. `<string.h>`:包含字符串操作函数,如`strcpy`、`strlen` 和`strcmp`。
4. `<math.h>`:包含数学函数,如三角函数、指数函数等。
5. `<time.h>`:包含时间和日期相关的函数,如`time` 和`strftime`。
6. `<ctype.h>`:包含字符分类函数,如`isalpha` 和`isdigit`。
7. `<stdbool.h>`:定义了`bool` 类型和`true`、`false` 常量,用于布尔值。
8. `<stddef.h>`:定义了`NULL` 宏和一些与指针相关的类型。
这只是一小部分常用的C语言头文件,实际上还有很多其他头文件,每个头文件都提供了特定的功能。
通过包含适当的头文件,你可
以在C程序中使用相应的函数和定义。
头文件ctype.h函数列表<>函数类别函数用途详细说明字符测试是否字母和数字isalnum是否字母isalpha是否控制字符iscntrl是否数字isdigit是否可显示字符(除空格外)isgraph是否可显示字符(包括空格)isprint是否既不是空格,又不是字母和数字的可显示字符ispunct是否空格isspace是否大写字母isupper是否16进制数字(0-9,A-F)字符isxdigit字符大小写转换函数转换为大写字母toupper转换为小写字母tolower地区化本类别的函数用于处理不同国家的语言差异。
头文件local.h函数列表函数类别函数用途详细说明地区控制地区设置setlocale数字格式约定查询国家的货币、日期、时间等的格式转换localeconv数学函数本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)头文件math.h函数列表函数类别函数用途详细说明错误条件处理定义域错误(函数的输入参数值不在规定的范围内)值域错误(函数的返回值不在规定的范围内)三角函数反余弦acos反正弦asin反正切atan反正切2 atan2余弦cos正弦sin正切tan双曲函数双曲余弦cosh双曲正弦sinh双曲正切tanh指数和对数指数函数exp指数分解函数frexp乘积指数函数fdexp自然对数log以10为底的对数log10浮点数分解函数modf幂函数幂函数pow平方根函数sqrt整数截断,绝对值和求余数函数求下限接近整数ceil绝对值fabs求上限接近整数floor求余数fmod本分类函数用于实现在不同底函数之间直接跳转代码。
头文件setjmp.h io.h函数列表函数类别函数用途详细说明保存调用环境setjmp恢复调用环境longjmp信号处理该分类函数用于处理那些在程序执行过程中发生例外的情况。
#include <complex>//复数类#include <csignal> //信号机制支持#include <csetjmp> //异常处理支持#include <cstdarg> //不定参数列表支持#include <cstddef> //常用常量#include <cstdio> //定义输入/输出函数#include <cstdlib> //定义杂项函数及内存分配函数#include <cstring> //字符串处理#include <ctime> //定义关于时间的函数#include <cwchar> //宽字符处理及输入/输出#include <cwctype> //宽字符分类#include <deque>//STL 双端队列容器#include <exception>//异常处理类#include <fstream> //文件输入/输出#include <functional>//STL 定义运算函数(代替运算符)#include <limits> //定义各种数据类型最值常量#include <list>//STL 线性列表容器#include <locale> //本地化特定信息#include <map>//STL 映射容器#include <memory> //STL通过分配器进行的内存分配#include <new> //动态内存分配#include <numeric> //STL常用的数字操作#include <iomanip> //参数化输入/输出#include <ios>//基本输入/输出支持#include <iosfwd>//输入/输出系统使用的前置声明#include <iostream> //数据流输入/输出#include <istream>//基本输入流#include <iterator> //STL迭代器#include <ostream>//基本输出流#include <queue>//STL 队列容器#include <set>//STL 集合容器#include <sstream>//基于字符串的流#include <stack>//STL 堆栈容器#include <stdexcept>//标准异常类#include <streambuf>//底层输入/输出支持#include <string>//字符串类#include <typeinfo> //运行期间类型信息#include <utility>//STL 通用模板类#include <valarray> //对包含值的数组的操作#include <vector>//STL 动态数组容器————————————————————————————————C99增加的部分#include <complex.h>//复数处理#include <fenv.h>//浮点环境#include <inttypes.h>//整数格式转换#include <stdbool.h>//布尔环境#include <stdint.h>//整型环境#include <tgmath.h>//通用类型数学宏头文件ctype.h字符处理函数: 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换----------------------------------------字符测试是否字母和数字isalnum是否字母isalpha是否控制字符iscntrl是否数字isdigit是否可显示字符(除空格外) isgraph是否可显示字符(包括空格) isprint是否既不是空格,又不是字母和数字的可显示字符ispunct是否空格isspace是否大写字母isupper是否16进制数字(0-9,A-F)字符isxdigit字符大小写转换函数转换为大写字母toupper转换为小写字母tolower头文件local.h地区化: 本类别的函数用于处理不同国家的语言差异。
3、C编程的各种源码⽂件1、C语⾔模块化编程中的头⽂件 实际开发中⼀般是将函数和变量的声明放到头⽂件,再在当前源⽂件中 #include 进来。
如果变量的值是固定的,最好使⽤宏来代替。
.c和.h⽂件都是源⽂件,除了后缀不⼀样便于区分外和管理外,其他的都是相同的,在.c中编写的代码同样也可以写在.h中,包括函数定义、变量定义、预处理等。
但是,.h 和 .c 在项⽬中承担的⾓⾊不⼀样:.c ⽂件主要负责实现,也就是定义函数和变量;.h ⽂件主要负责声明(包括变量声明和函数声明)、宏定义、类型定义等。
这些不是C语法规定的内容,⽽是约定成俗的规范,或者说是长期形成的事实标准。
根据这份规范,头⽂件可以包含如下的内容:可以声明函数,但不可以定义函数。
可以声明变量,但不可以定义变量。
可以定义宏,包括带参的宏和不带参的宏。
结构体的定义、⾃定义数据类型⼀般也放在头⽂件中。
在项⽬开发中,我们可以将⼀组相关的变量和函数定义在⼀个 .c ⽂件中,并⽤⼀个同名的 .h ⽂件(头⽂件)进⾏声明,其他模块如果需要使⽤某个变量或函数,那么引⼊这个头⽂件就可以。
这样做的另外⼀个好处是可以保护版权,我们在发布相关模块之前,可以将它们都编译成⽬标⽂件,或者打包成静态库,只要向⽤户提供头⽂件,⽤户就可以将这些模块链接到⾃⼰的程序中。
2、C语⾔标准库以及标准头⽂件 源⽂件通过编译可以⽣成⽬标⽂件(例如 GCC 下的 .o 和 Visual Studio 下的 .obj),并提供⼀个头⽂件向外暴露接⼝,除了保护版权,还可以将散乱的⽂件打包,便于发布和使⽤。
实际上我们⼀般不直接向⽤户提供⽬标⽂件,⽽是将多个相关的⽬标⽂件打包成⼀个静态链接库(Static Link Library),例如 Linux 下的 .a 和 Windows 下的 .lib。
打包静态库的过程很容易理解,就是将多个⽬标⽂件捆绑在⼀起形成⼀个新的⽂件,然后再加上⼀些索引,⽅便链接器找到,这和压缩⽂件的过程⾮常类似。
标准C语言头文件ISO C标准定义的头文件(24项)<assert.h> 验证程序断言<complex.h> 支持复数算术运算<ctype.h> 字符类型<errno.h> 出错码<fenv.h> 浮点环境<float.h> 浮点常量<inttypes.h> 整型格式转换<iso646.h> 替代关系操作符宏<limits.h> 实现常量<locale.h> 局部类别<math.h> 数学常量<setjmp.h> 非局部goto<signal.h> 信号<stdarg.h> 可变参数表<stdbool.h> 布尔类型和值<stddef.h> 标准定义<stdint.h> 整型<stdio.h> 标准I/O库<stdlib.h> 实用程序库函数<string.h> 字符串操作<tgmath.h> 通用类型数学宏<time.h> 时间和日期<wchar.h> 宽字符支持<wctype.h> 宽字符分类和映射支持POSIX标准定义的必须的头文件(26项)<dirent.h> 目录项<fcntl.h> 文件控制<fnmatch.h> 文件名匹配类型<glob.h> 路径名模式匹配类型<grp.h> 组文件<netdb.h> 网络数据库操作<pwd.h> 口令文件<regex.h> 正则表达式<tar.h> tar归档值<termios.h> 终端I/O <unistd.h> 符号常量<utime.h> 文件时间<wordexp.h> 字扩展类型<arpa/inet.h> Internet定义<net/if.h> 套接字本地接口<netinet/in.h> Internet地址族 <netinet/tcp.h> 传输控制协议<sys/mman.h> 内存管理声明<sys/select.h> select函数<sys/socket.h> 套接字接口<sys/stat.h> 文件状态<sys/times.h> 进程时间<sys/types.h> 基本系统数据类型<sys/un.h> UNIX域套接字定义<sys/utsname.h>系统名<sys/wait.h> 进程控制POSIX标准定义的XSI扩展头文件(26项)<cpio.h> cpio归档值<dlfcn.h> 动态链接<fmtmsg.h> 消息显示结构<ftw.h> 文件树漫游<iconv.h> 代码集转换实用程序<langinfo.h> 语言信息常量<libgen.h> 模式匹配函数定义<monetary.h> 货币类型<ndbm.h> 数据库操作<nl_types.h> 消息类别<poll.h> 轮询函数<search.h> 搜索表<strings.h> 字符串操作<syslog.h> 系统出错日志记录<ucontext.h> 用户上下文<ulimit.h> 用户限制<utmpx.h> 用户帐户数据库<sys/ipc.h> IPC<sys/msg.h> 消息队列<sys/resource.h> 资源操作<sys/sem.h> 信号量<sys/shm.h> 共享存储<sys/statvfs.h> 文件系统信息<sys/time.h> 时间类型<sys/timeb.h> 附加的时间<sys/uio.h> 矢量I/O操作POSIX标准定义的可选头文件(8项)<aio.h> 异步I/O <mqueue.h> 消息队列<pthread.h> 线程<sched.h> 执行调度<semaphore.h> 信号量<spawn.h> 实时spawn接口<stropts.h> XSI STREAMS接口<trace.h> 时间跟踪标准 C++ 语言头文件(54个其中16个用于构建STL,3个为附加非必须)<algorithm>STL通用算法<bitset> STL位集容器<cassert> 用于在程序运行时执行断言<cctype> 字符处理<cerrno> 错误码<cfloat> 用于测试浮点类型属性<ciso646> ISO646变体字符集<climits> 测试整数类型属性<clocale> 本地化函数<cmath> 数学函数<complex>复数类<csetjmp> 执行非内部的goto语句<csignal> 信号<cstdarg> 访问参数数量变化的函数<cstddef> 用于定义实用的类型和宏<cstdio> 输入/输出<cstdlib> 杂项函数及内存分配<cstring> 字符串<ctime> 时间<cwchar> 宽字符处理及输入/输出<cwctype> 宽字符分类<deque> STL双端队列容器<exception> 异常处理类<fstream> 文件流<functional> STL函数对象<iomanip> 参数化输入/输出<ios>基本输入/输出支持<iosfwd> 输入/输出前置声明<iostream> 数据流输入/输出<istream> 基本输入流<iterator> 遍历序列的类<limits> 各种数据类型最值常量<list>STL线性列表容器<locale> 国际化支持<map> STL映射容器<memory> 专用内存分配器<new> 基本内存分配和释放<numeric> 通用的数字操作<ostream> 基本输出流<queue> STL 队列容器<set> STL 集合容器<sstream> 基于字符串的流<stack> STL 堆栈容器<stdexcept> 标准异常类<streambuf> iostream 的缓冲区类<string> 字符串类<strstream> 非内存字符序列的流类<typeinfo> 运行时类型标识<utility> STL 通用模板类<valarray> 支持值数组的类和模版类<vector> STL 动态数组容器标准C++附加的头文件(3个)非必须<hash_map> <hash_set> <slist>The Standard C++ library consists of 51 required headers.This implementation also includes three additional headers,<hash_map>,<hash_set>,and <slist>,not required by the C++ Standard,for a total of 54 headers.Of these 54 headers,16 constitute the Standard Template Library,or STL.These are indicated below with the notation<algorithm> -- (STL) for defining numerous templates that implement useful algorithms<bitset> -- for defining a template class that administers sets of bits<complex> -- for defining a template class that supports complex arithmetic<deque> -- (STL) for defining a template class that implements a deque container<exception> -- for defining several functions that control exception handling<fstream> -- for defining several iostreams template classes that manipulate exteral files<functional>-- (STL) for defining several templates that help construct predicates for the templates defined in <algorithm> and <numeric><hash_map> -- (STL) for defining template classes that implement hashed associative containersthat map keys to values<hash_set> -- (STL) for defining template classes that implement hashed associative containers<iomanip> -- for declaring several iostreams manipulators that take an argument<ios> -- for defining the template class that serves as the base for many iostreams classes<iosfwd> -- for declaring several iostreams template classes before they are necessarilydefined<iostream> -- for declaring the iostreams objects that manipulate the standard streams<istream> -- for defining the template class that performs extractions<iterator> -- (STL) for defining several templates that help define and manipulate iterators<limits> -- for testing numeric type properties<list>-- (STL) for defining a template class that implements a doubly linked list container<locale> -- for defining several classes and templates that controllocale-specific behavior, as in the iostreams classes<map>-- (STL) for defining template classes that implement associative containers thatmap keys to values<memory>-- (STL) for defining several templates that allocate and free storage for variouscontainer classes<new> -- for declaring several functions that allocate and free storage<numeric>-- (STL) for defining several templates that implement useful numeric functions<ostream> -- for defining the template class that performs insertions<queue> -- (STL) for defining a template class that implements a queue container<set>-- (STL) for defining template classes that implement associative containers<slist>-- (STL) for defining a template class that implements a singly linked list container<sstream> -- for defining several iostreams template classes that manipulate string containers<stack> -- (STL) for defining a template class that implements a stack container<stdexcept> -- for defining several classes useful for reporting exceptions<streambuf> -- for defining template classes that buffer iostreams operations<string> -- for defining a template class that implements a string container<strstream> -- for defining several iostreams classes that manipulate in-memory character sequences<typeinfo> -- for defining class type_info, the result of the typeid operator<utility>-- (STL) for defining several templates of general utility<valarray> -- for defining several classes and template classes that support value-oriented arrays<vector>-- (STL) for defining a template class that implements a vector container新的C标准库<cassert> -- for enforcing assertions when functions execute<cctype> -- for classifying characters<cerrno> -- for testing error codes reported by library functions<cfloat> -- for testing floating-point type properties<ciso646> -- for programming in ISO 646 variant character sets<climits> -- for testing integer type properties<clocale> -- for adapting to different cultural conventions<cmath> -- for computing common mathematical functions<csetjmp> -- for executing nonlocal goto statements<csignal> -- for controlling various exceptional conditions<cstdarg> -- for accessing a varying number of arguments<cstddef> -- for defining several useful types and macros<cstdio> -- for performing input and output<cstdlib> -- for performing a variety of operations<cstring> -- for manipulating several kinds of strings<ctime> -- for converting between various time and date formats<cwchar> -- for manipulating wide streams and several kinds of strings<cwctype> -- for classifying wide characters旧的C标准库<assert.h> -- for enforcing assertions when functions execute<ctype.h> -- for classifying characters<errno.h> -- for testing error codes reported by library functions<float.h> -- for testing floating-point type properties<iso646.h> -- for programming in ISO 646 variant character sets<limits.h> -- for testing integer type properties<locale.h> -- for adapting to different cultural conventions<math.h> -- for computing common mathematical functions<setjmp.h> -- for executing nonlocal goto statements<signal.h> -- for controlling various exceptional conditions<stdarg.h> -- for accessing a varying number of arguments<stddef.h> -- for defining several useful types and macros<stdio.h> -- for performing input and output<stdlib.h> -- for performing a variety of operations<string.h> -- for manipulating several kinds of strings<time.h> -- for converting between various time and date formats<wchar.h> -- for manipulating wide streams and several kinds of strings<wctype.h> -- for classifying wide charactersFinally, in this implementation, the Standard C++ library also includes several headers for compatibility with traditional C++ libraries:<fstream.h> -- for defining several iostreams template classes that manipulate exteral files <iomanip.h> -- for declaring several iostreams manipulators that take an argument<iostream.h> -- for declaring the iostreams objects that manipulate the standard streams <new.h> -- for declaring several functions that allocate and free storage<stl.h> -- for declaring several template classes that aid migration from older versions of the Standard Template Library。
C语言所有常用头文件用途C语言的头文件是预编译的指令,用来导入函数和变量的声明,以及宏定义等。
常用头文件涵盖了各种操作和功能,大致可以分为系统头文件、标准库头文件和用户自定义头文件等几大类。
下面是一些常用的C语言头文件及其用途的简要介绍。
1. stdio.h:提供输入输出函数。
包括 printf(、scanf(、getchar(、putchar(等函数,用于屏幕输入输出。
2. stdlib.h:提供一些常用的函数和宏,如 memory allocation functions(malloc(、calloc(、realloc()和 exit( 函数等。
3. string.h:提供字符串处理函数。
包括 strcpy(、strcat(、strlen( 和 strcmp(等函数,用于处理字符串相关操作。
4. math.h:提供数学运算函数。
包括 abs(、sqrt(、sin(、cos(、tan(等函数,用于执行数学计算和操作。
6. ctype.h:提供字符处理函数。
例如 isalpha(、isdigit( 和tolower(等函数,用于字符类型判断和转换。
7. assert.h:宏定义用于程序运行时的断言。
例如 assert( 宏,用于在程序运行时检查条件是否满足,如不满足则终止程序。
8. stdarg.h:提供可变参数函数的定义和使用。
包括 va_start(、va_arg( 和 va_end(等宏和函数,用于操作可变参数列表。
9. float.h:提供浮点数相关信息和宏定义。
例如 FLT_MAX、DBL_MAX 和 LDBL_MAX等常量,表示浮点数的最大值。
10. limits.h:提供整数类型的取值范围和宏定义。
例如 INT_MAX、INT_MIN 和 CHAR_BIT等常量,表示整数类型的最大值、最小值和字符位数。
11. stdbool.h:提供布尔类型的定义和宏定义。
包括 bool、true 和 false等常量,表示布尔类型的值。
c语言编程的基本格式C语言是一种广泛使用的编程语言,具有简洁而灵活的语法。
下面是一个简单的C语言程序的基本格式:// 头文件#include <stdio.h>// main函数,程序的入口int main() {// 在这里写你的代码// 返回0表示程序成功执行return 0;}这是一个简单的C语言程序的骨架,其中包括以下几个要素:头文件 (#include <stdio.h>): #include 指令用于将头文件包含到程序中。
在这个例子中,<stdio.h> 是标准输入输出头文件,它包含了用于输入输出的函数。
main函数 (int main() { ... }): C程序的执行始于 main 函数。
int 表示 main 函数的返回类型,而 return 0; 语句表示程序正常结束。
main 函数的花括号 {} 之间是程序的主体,你可以在这里编写你的代码。
在 main 函数中,你可以使用各种C语言的语法来编写具体的程序逻辑。
例如,你可以定义变量、使用控制流语句(如 if、for、while)等。
以下是一个简单的例子:#include <stdio.h>int main() {// 定义一个整数变量int num = 10;// 使用printf函数打印输出printf("Hello, World! The value of num is: %d\n", num);// 返回0表示程序成功执行return 0;}这个程序会输出 "Hello, World! The value of num is: 10"。
这只是一个简单的例子,你可以根据自己的需求扩展和修改代码。
C语言编程常用头文件
C语言常用头文件总结
序号库类别头文件
1 字符处理ctype.h
2 地区化local.h
3 数学函数math.h
4 信号处理signal.h
5 输入输出stdio.h
6 实用工具程序stdlib.h
7 字符串处理string.h
字符处理函数
本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换头文件ctype.h
函数列表<>
函数类别函数用途详细说明
字符测试是否字母和数字isalnum
是否字母isalpha
是否控制字符iscntrl
是否数字isdigit
是否可显示字符(除空格外)isgraph
是否可显示字符(包括空格)isprint
是否既不是空格,又不是字母和数字的可显示字符ispunct
是否空格isspace
是否大写字母isupper
是否16进制数字(0-9,A-F)字符isxdigit
字符大小写转换函数转换为大写字母toupper
转换为小写字母tolower
地区化
本类别的函数用于处理不同国家的语言差异。
头文件local.h
函数列表
函数类别函数用途详细说明
地区控制地区设置setlocale
数字格式约定查询国家的货币、日期、时间等的格式转换localeconv
数学函数
本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)
头文件math.h
函数列表
函数类别函数用途详细说明
错误条件处理定义域错误(函数的输入参数值不在规定的范围内)
值域错误(函数的返回值不在规定的范围内)
三角函数反余弦acos
反正弦asin
反正切atan
反正切2 atan2
余弦cos
正弦sin
正切tan
双曲函数双曲余弦cosh
双曲正弦sinh
双曲正切tanh
指数和对数指数函数exp
指数分解函数frexp
乘积指数函数fdexp
自然对数log
以10为底的对数log10
浮点数分解函数modf
幂函数幂函数pow
平方根函数sqrt
整数截断,绝对值和求余数函数求下限接近整数ceil
绝对值fabs
求上限接近整数floor
求余数fmod
本分类函数用于实现在不同底函数之间直接跳转代码。
头文件setjmp.h io.h
函数列表
函数类别函数用途详细说明
保存调用环境setjmp
恢复调用环境longjmp
信号处理
该分类函数用于处理那些在程序执行过程中发生例外的情况。
头文件signal.h
函数列表
函数类别函数用途详细说明
指定信号处理函数signal
发送信号raise
可变参数处理
本类函数用于实现诸如printf,scanf等参数数量可变底函数。
头文件stdarg.h
函数列表
函数类别函数用途详细说明
可变参数访问宏可变参数开始宏va_start
可变参数结束宏va_end
可变参数访问宏访问下一个
可变参数宏va_arg
输入输出函数
该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现头文件stdio.h
函数列表
函数类别函数用途详细说明
文件操作
删除文件remove
修改文件名称rename
生成临时文件名称tmpfile
得到临时文件路径tmpnam
文件访问关闭文件fclose
刷新缓冲区fflush
打开文件fopen
将已存在的流指针和新文件连接freopen
设置磁盘缓冲区setbuf
设置磁盘缓冲区setvbuf
格式化输入与输出函数格式输出fprintf
格式输入fscanf
格式输出(控制台)printf
格式输入(控制台)scanf
格式输出到缓冲区sprintf
从缓冲区中按格式输入sscanf
格式化输出vfprintf
格式化输出vprintf
格式化输出vsprintf
字符输入输出函数输入一个字符fgetc
字符串输入fgets
字符输出fputc
字符串输出fputs
字符输入(控制台)getc
字符输入(控制台)getchar
字符串输入(控制台)gets
字符输出(控制台) putc
字符输出(控制台) putchar
字符串输出(控制台) puts
字符输出到流的头部ungetc
直接输入输出直接流读操作fread
直接流写操作fwrite
文件定位函数得到文件位置fgetpos
文件位置移动fseek
文件位置设置fsetpos
得到文件位置ftell
文件位置复零位remind
错误处理函数错误清除clearerr
文件结尾判断feof
文件错误检测ferror
得到错误提示字符串perror
实用工具函数
本分类给出了一些函数无法按以上分类,但又是编程所必须要的。
头文件stdlib.h
函数列表
函数类别函数用途详细说明
字符串转换函数字符串转换为整数atoi
字符串转换为长整数atol
字符串转换为浮点数strtod
字符串转换为长整数strtol
字符串转换为无符号长整型strtoul
伪随机序列产生函数产生随机数rand
设置随机函数的起动数值srand
存储管理函数分配存储器calloc
释放存储器free
存储器分配malloc
重新分配存储器realloc
环境通信中止程序abort
退出程序执行,并清除环境变量atexit
退出程序执行exit
读取环境参数getenv
程序挂起,临时执行一个其他程序system
搜索和排序工具二分查找(数据必须已排序)bsearch
快速排序qsort
整数运算函数求绝对值abs
div
得到除法运算底商和余数
求长整形底绝对值labs
求长整形除法的商和余数ldiv
多字节字符函数得到多字节字符的字节数mblen
得到多字节字符的字节数mbtowc
多字节字符转换wctomb
多字节字符的字符串操作将多字节串转换为整数数组mbstowcs 将多字节串转换为字符数组mcstowbs
字符串处理
本分类的函数用于对字符
串进行合并、比较等操作
头文件string.h
函数列表
函数类别函数用途详细说明
字符串拷贝块拷贝(目的和源存储区不可重叠)memcpy
块拷贝(目的和源存储区可重叠)memmove
串拷贝strcpy
按长度的串拷贝strncpy
字符串连接函数串连接strcat
按长度连接字符串strncat
串比较函数块比较memcmp
字符串比较strcmp
字符串比较(用于非英文字符)strcoll
按长度对字符串比较strncmp
字符串转换strxfrm
字符与字符串查找字符查找memchr
字符查找strchr
字符串查找strcspn
字符串查找strpbrk
字符串查找strspn
字符串查找strstr
字符串分解strtok
杂类函数字符串设置memset
错误字符串映射strerror
求字符串长度strlen
日期和时间函数
本类别给出时间和日期处理函数
头文件time.h
函数列表
函数类别函数用途详细说明
时间操作函数得到处理器时间clock
得到时间差difftime
设置时间mktime
得到时间time
时间转换函数得到以ASCII码表示的时间asctime 得到字符串表示的时间ctime
得到指定格式的时间strftime
函数库未来的发展方向
本部分用于说明各类别函数库在将来如何发展。
序号库类别头文件详细说明
1 错误处理errno.h
2 字符处理ctype.h
3 地区化local.h
4 数学函数math.h
5 信号处理signal.h
6 输入输出stdio.h
7 实用工具程序stdlib.h
8 字符串处理string.h。