C语言标准库函数查询手册
- 格式:docx
- 大小:64.16 KB
- 文档页数:44
常用C语言标准库函数C语言编译系统提供了众多的预定义库函数和宏。
用户在编写程序时,可以直接调用这些库函数和宏。
这里选择了初学者常用的一些库函数,简单介绍了各函数的用法和所在的头文件。
1.测试函数Isalnum原型:int isalnum(int c)功能:测试参数c是否为字母或数字:是则返回非零;否则返回零头文件:ctype.hIsapha原型:int isapha(int c)功能:测试参数c是否为字母:是则返回非零;否则返回零头文件:ctype.hIsascii原型:int isascii(int c)功能:测试参数c是否为ASCII码(0x00~0x7F):是则返回非零;否则返回零头文件:ctype.hIscntrl原型:int iscntrl(int c)功能:测试参数c是否为控制字符(0x00~0x1F、0x7F):是则返回非零;否则返回零头文件:ctype.hIsdigit原型:int isdigit(int c)功能:测试参数c是否为数字:是则返回非零;否则返回零。
头文件:ctype.hIsgraph原型:int isgraph(int c)功能:测试参数c是否为可打印字符(0x21~0x7E):是则返回非零;否则返回零头文件:ctype.hIslower原型:int islower(int c)功能:测试参数c是否为小写字母:是则返回非零;否则返回零 头文件:ctype.hIsprint原型:int isprint(int c)功能:测试参数c是否为可打印字符(含空格符0x20~0x7E):是则返回非零;否则返回零头文件:ctype.hIspunct原型:int ispunct(int c)功能:测试参数c是否为标点符号:是则返回非零;否则返回零 头文件:ctype.hIsupper原型:int isupper(inr c)功能:测试参数c是否为大写字母:是则返回非零;否则返回零Isxdigit原型:int isxdigit(int c)功能:测试参数c是否为十六进制数:是则返回非零;否则返回零2.数学函数abs原型:int abs(int i)功能:返回整数型参数i的绝对值头文件:stdlib.h,math.hacos原型:double acos(double x)功能:返回双精度参数x的反余弦三角函数值头文件:math.hasin原型:double asin(double x)功能:返回双精度参数x的反正弦三角函数值头文件:math.hatan原型:double atan(double x)功能:返回双精度参数的反正切三角函数值头文件:math.hatan2原型:double atan2(double y,double x)功能:返回双精度参数y和x由式y/x所计算的反正切三角函数值 头文件:math.hcabs原型:double cabs(struct complex znum)功能:返回一个双精度数,为计算出复数znum的绝对值。
c语言标准库手册
C语言标准库手册是一个非常重要的资源,它提供了关于C语言标准库的详细信息,包括函数、常量、数据类型、头文件等方面的说明。
这个标准库手册可以作为C语言程序员在编写程序时的参考手册。
以下是C语言标准库手册的一些重要组成部分:
1. 函数:C语言标准库中包含了大量的函数,包括数学函数、字符串处理函数、文件操作函数等等。
这些函数都是以库的形式提供的,程序员可以直接调用这些函数,而不需要自己编写实现。
2. 常量:C语言标准库中定义了一些常量,这些常量可以在程序中直接使用,而不需要自己定义。
例如,定义了表示不同的数据类型的常量,如char、int、float、double等。
3. 数据类型:C语言标准库中定义了一些数据类型,这些数据类型可以在程序中直接使用。
例如,定义了表示不同大小和范围的整数类型和浮点数类型。
4. 头文件:C语言标准库中的头文件包含了库函数的声明、宏定义和数据类型的定义等。
在程序中需要使用标准库中的函数或常量时,需要包含相应的头文件。
总之,C语言标准库手册是一个非常重要的资源,它可以帮助程序员更好地理解和使用C语言标准库,提高编程效率和代码质量。
c语言函数库目录第一章(C标准库) (8)1. <assert.h>:诊断 (8)2. <ctype.h>:字符类别测试 (9)3. <errno.h>:错误处理 (10)4. <limits.h>:整型常量 (11)5. <locale.h>:地域环境 (12)6. <math.h>:数学函数 (14)7. <setjmp.h>:非局部跳转 (15)8. <signal.h>:信号 (17)9. <stdarg.h>:可变参数表 (20)10. <stddef.h>:公共定义 (21)11. <stdio.h>:输入输出 (22)12. <stdlib.h>:实用函数 (24)13. <time.h>:日期与时间函数 (25)第二章(IO函数) (27)clearerr:复位错误标志函数 (29)feof:检测文件结束符函数 (30)ferror:检测流上的错误函数 (31)fflush:清除文件缓冲区函数 (32)fgetpos:取得当前文件的句柄函数 (35)fgets:从流中读取字符串函数 (36)fopen、fclose:文件的打开与关闭函数 (37)fprintf:格式化输出函数 (39)fputc:向流中输出字符函数 (41)fputs:向流中输出字符串函数 (41)fread:从流中读取字符串函数 (42)freopen:替换文件中数据流函数 (43)fscanf:格式化输入函数 (44)fseek:文件指针定位函数 (45)fsetpos:定位流上的文件指针函数 (47)ftell:返回当前文件指针位置函数 (48)fwrite:向文件写入数据函数 (49)getc:从流中读取字符函数 (50)getchar:从标准输入文件中读取字符函数 (51)gets:从标准输入文件中读取字符串函数 (52)perror:打印系统错误信息函数 (53)printf:产生格式化输出的函数 (54)putc:向指定流中输出字符函数 (54)putchar:向标准输出文件上输出字符 (56)puts:将字符串输出到终端函数 (56)rename:重命名文件函数 (58)rewind:重置文件指针函数 (59)scanf:格式化输入函数 (60)setbuf、setvbuf:指定文件流的缓冲区函数 (61)sprintf:向字符串写入格式化数据函数 (62)sscanf:从缓冲区中读格式化字符串函数 (63)tmpfile:创建临时文件函数 (64)tmpnam:创建临时文件名函数 (65)ungetc:把字符退回到输入流函数 (66)第三章(字符处理函数) (68)isalnum:检查字符是否是字母或数字 (68)isalpha:检查字符是否是字母 (69)isascii:检查字符是否是ASCII码 (70)iscntrl:检查字符是否是控制字符 (71)isdigit:检查字符是否是数字字符 (72)isgraph:检查字符是否是可打印字符(不含空格) (73)islower:检查字符是否是小写字母 (74)isprint:检查字符是否是可打印字符(含空格) (75)ispunct:检查字符是否是标点字符 (75)isspace:检查字符是否是空格符 (76)isupper:检查字符是否是大写字母 (77)isxdigit:检查字符是否是十六进制数字字符 (78)toascii:将字符转换为ASCII码 (79)tolower:将大写字母转换为小写字母 (80)toupper:将小写字母转换为大写字母 (80)第四章(字符串函数) (81)atof:字符串转浮点型函数 (83)atoi:字符串转整型函数 (84)atol:字符串转长整型函数 (85)memchr:字符搜索函数 (85)memcmp:字符串比较函数 (86)memcpy:字符串拷贝函数 (87)memmove:字块移动函数 (89)memset:字符加载函数 (90)strcat:字符串连接函数 (91)strchr:字符串中字符首次匹配函数 (92)strcmp:字符串比较函数 (93)strcpy:字符串拷贝函数 (95)strcspn:字符集逆匹配函数 (96)strdup:字符串新建拷贝函数 (97)strerror:字符串错误信息函数 (98)strlen:计算字符串长度函数 (99)strlwr:字符串小写转换函数 (100)strncmp:字符串子串比较函数 (102)strncpy:字符串子串拷贝函数 (103)strpbrk:字符集字符匹配函数 (104)strrchr:字符串中字符末次匹配函数 (106)strrev:字符串倒转函数 (107)strset:字符串设定函数 (108)strspn:字符集匹配函数 (109)strstr:字符串匹配函数 (110)strtod:字符串转换成双精度函数 (111)strtok:字符串分隔函数 (112)strtol:字符串转换成长整型函数 (114)strtoul:字符串转换成无符号长整型函数 (115)strupr:字符串大写转换函数 (116)strupr:字符串大写转换函数 (117)第五章(数学函数) (118)abs、labs、fabs:求绝对值函数 (119)acos:反余弦函数 (120)asin:反正弦函数 (121)atan:反正切函数 (122)atan2:反正切函数2 (122)ceil:向上舍入函数 (123)cosh:双曲余弦函数 (124)div、ldiv:除法函数 (125)exp:求e的x次幂函数 (126)floor:向下舍入函数 (127)fmod:求模函数 (128)frexp:分解浮点数函数 (128)hypot:求直角三角形斜边长函数 (129)ldexp:装载浮点数函数 (130)log、log10:对数函数 (130)modf:分解双精度数函数 (131)pow、pow10:指数函数 (132)rand:产生随机整数函数 (133)sin:正弦函数 (134)sinh:双曲正弦函数 (134)sqrt:开平方函数 (135)srand:设置随机时间的种子函数 (135)tan:正切函数 (136)tanh:双曲正切函数 (137)第六章(时间和日期函数) (138)asctime:日期和时间转换函数 (138)clock:测定运行时间函数 (139)difftime:计算时间差函数 (141)gmtime:将日历时间转换为GMT (142)localtime:把日期和时间转变为结构 (143)mktime:时间类型转换函数 (144)time:获取系统时间函数 (145)第七章(其它函数) (146)abort:异常终止进程函数 (147)atexit:注册终止函数 (147)bsearch:二分搜索函数 (148)calloc:分配主存储器函数 (150)exit:正常终止进程函数 (151)free:释放内存函数 (152)getenv:获取环境变量 (153)malloc:动态分配内存函数 (154)qsort:快速排序函数 (155)realloc:重新分配主存函数 (156)第一章(C标准库)1. <assert.h>:诊断2. <ctype.h>:字符类别测试3. <errno.h>:错误处理4. <limits.h>:整型常量5. <locale.h>:地域环境6. <math.h>:数学函数7. <setjmp.h>:非局部跳转8. <signal.h>:信号9. <stdarg.h>:可变参数表10. <stddef.h>:公共定义11. <stdio.h>:输入输出12. <stdlib.h>:实用函数13. <time.h>:日期与时间函数1. <assert.h>:诊断<assert.h>中只定义了一个带参的宏assert,其定义形式如下:void assert (int 表达式)assert宏用于为程序增加诊断功能,它可以测试一个条件并可能使程序终止。
C语⾔常⽤标准库函数数学函数:在math.h中abs(x) :求整型数x的绝对值cos(x):x(弧度)的余弦fabs(x):求浮点数x的绝对值ceil(x):求不⼩于x的最⼩整数floor(x):求不⼤于x的最⼩整数log(x):求x的⾃然对数log10(x):求x的对数(底为10)pow(x,y):求x的y次⽅sin(x):求x(弧度)的正弦sqrt(x):求x的平⽅根字符处理函数:在ctype.h中声明int isdigit(int c):判断是否是数字字符int isalpha(int c):判断是否是⼀个字母int isalnum(int c):判断是否是⼀个数字或字母int islower(int c):判断是否是⼀个⼩写字母int isupper(int c):判断是否是⼀个⼤写字母int toupper(int c):转换成⼤写字母int tolower(int c):转换成⼩写字母字符串处理和内存操作函数声明于string.h中char *strchr(char *s,int c):如果s中包含字符c,则返回⼀个指向s第⼀次出现的该字符的指针,否则返回NULLchar *strstr(char *s1,char *s2):如果s2是s1的⼀个⼦串,则返回⼀个指向s1中⾸次出现s2的位置的指针,否则返回NULLchar *strlwr(char *s):将s中的字母都变成⼩写cahr *strupr(char *s):将s中的字母都变成⼤写char *strcpy(char *s1,char *s2):将字符串s2的内容复制到s1中去char *strncpy(char *s1,char *s2,int n):将字符串s2的内容复制到s1中去,但是最多复制n个字节,如果复制字节数达到n,那么就不会往s1中写⼊结尾的'\0'char *strcat(cahr *s1,char *s2):将字符串s2添加到s1末尾int strcmp(char *s1,char *s2):⽐较两个字符串,⼤⼩写相关int stricmp(char *s1,char *s2):⽐较两个字符串,⼤⼩写⽆关int strlen(const char *string):计算字符串的长度int strncmp(const char *string1,const char *string2,size_t count):分别取两个字符串的前count个字符作为字符串,⽐较他们的⼤⼩char *strrev(char *string):将字符串string前后颠倒void *memcpy(void *s1,void *s2,int n):将内存地址s2处的n个字节内容复制到内存地址s1void *memset(void *s,int c,int n):将内存地址s开始的n个字节全部置为c不过只能赋制为0,1fill(a,a+n,c):能够赋值为任意值字符串转换函数:定义在stdlib.h中int atoi(char *s):将字符串s转换为整型数double atof(char *s):将字符串s⾥的内容转换为浮点数char * itoa(int value,char *string,int radix):将整型值value以radix进制表⽰法写⼊string。
c语言标准输入输出函数C语言是一种广泛应用的编程语言,它提供了许多标准库函数来实现输入和输出操作。
在C语言中,标准输入输出函数是非常重要的,用于与用户交互和进行数据的读取和输出。
本文将详细介绍C语言中的标准输入输出函数,并对其进行逐一讲解。
在C语言中,标准输入输出函数主要包括以下几个:1. printf函数:用于向屏幕上输出内容。
它的基本用法是:printf("格式字符串",变量列表);其中,格式字符串是一个由普通字符和转义序列组成的字符串,用来描述输出的格式和内容;变量列表包含了要输出的变量的值。
例如,下面的代码将在屏幕上输出"Hello World!":```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. scanf函数:用于从键盘上读取输入。
它的基本用法是:scanf("格式字符串",变量列表);其中,格式字符串和变量列表的含义与printf函数类似,用来描述输入的格式和存储变量的位置。
例如,下面的代码将从键盘上读取一个整数,并输出它的值:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的整数是:%d", num);return 0;}```3. gets函数:用于从键盘上读取一行字符串。
它的基本用法是:gets(字符串变量);其中,字符串变量用来存储读取到的字符串。
例如,下面的代码将从键盘上读取一行字符串,并输出它的内容:```c#include <stdio.h>int main() {char str[100];printf("请输入一行字符串:");gets(str);printf("您输入的字符串是:%s", str);return 0;}```需要注意的是,gets函数是不安全的,容易导致缓冲区溢出,因此在实际应用中应尽量避免使用。
c语言标准库函数大全C语言标准库函数大全。
C语言标准库函数是C语言程序设计中不可或缺的一部分,它包含了丰富的函数,可以帮助程序员完成各种任务,从输入输出到内存管理、字符串处理等。
本文将为大家详细介绍C语言标准库中常用的函数,希望能够帮助大家更好地理解和运用这些函数。
1. 输入输出函数。
输入输出函数是C语言程序设计中最基本的部分,它们可以帮助我们与用户进行交互,从而实现程序的输入和输出。
其中,printf和scanf是最常用的两个函数,它们分别用于输出和输入数据。
除此之外,还有一些其他的输入输出函数,如puts、gets、putc、getc等,它们分别用于输出字符串、输入字符串等操作。
2. 字符串处理函数。
在C语言标准库中,有许多用于处理字符串的函数,如strlen、strcpy、strcat、strcmp等。
这些函数可以帮助我们对字符串进行各种操作,比如计算字符串的长度、复制字符串、拼接字符串、比较字符串等。
字符串处理函数在实际的程序设计中非常常用,它们可以帮助我们高效地处理字符串数据。
3. 数学函数。
C语言标准库中还包含了丰富的数学函数,如sin、cos、tan、sqrt、pow等。
这些函数可以帮助我们进行各种数学运算,比如三角函数运算、开方运算、幂运算等。
数学函数在科学计算和工程计算中非常重要,它们可以帮助我们实现各种复杂的数学运算。
4. 内存管理函数。
内存管理函数是C语言程序设计中不可或缺的一部分,它们可以帮助我们对内存进行分配和释放。
其中,malloc和free是最常用的两个函数,它们分别用于分配和释放内存。
除此之外,还有一些其他的内存管理函数,如calloc、realloc等,它们分别用于分配多块内存、重新分配内存等操作。
5. 时间日期函数。
C语言标准库中还包含了一些用于处理时间日期的函数,如time、localtime、strftime等。
这些函数可以帮助我们获取当前的系统时间、将时间转换为字符串等操作。
C语言标准参考手册C语言是一种广泛应用于系统软件开发和嵌入式系统领域的高级编程语言。
为了确保C语言的标准化和统一性,C语言标准参考手册被广泛采纳和使用。
在本篇文章中,将向您介绍C语言标准参考手册的结构和内容,并探讨其在C语言开发中的重要性。
一、引言C语言标准参考手册是由国际标准化组织(ISO)和美国国家标准学会(ANSI)联合发布的C语言的标准文档。
其目的是为了促进不同平台上的代码可移植性,并确保C语言在不同系统中的一致性。
二、手册结构C语言标准参考手册主要由以下几个部分组成:1. 标准库说明:该部分介绍了C语言标准库中提供的函数、宏等各种功能,并详细描述了各种库函数的使用方法和参数。
2. 语言特性说明:该部分介绍了C语言的语法、语义、数据类型、控制流以及各种运算符等基本语言特性。
3. 标准宏定义:该部分列举了C语言标准中定义的各种宏,并解释了它们的作用和用法。
4. 标准兼容性:该部分描述了C语言标准在不同编译器中的兼容性问题,以及应遵循的最佳实践和常见的编译错误。
5. 编译指令和预处理器:该部分介绍了C语言中的编译指令、预处理器以及它们的功能和使用方法。
三、内容详解1. 标准库说明:C语言标准库包括标准输入输出库(stdio.h)、数学库(math.h)、字符串处理库(string.h)等。
标准库中的函数提供了丰富的功能,比如输入输出操作、数学计算、字符串处理、内存管理等。
2. 语言特性说明:C语言具有丰富的语言特性,包括基本的数据类型(整型、浮点型、字符型等)、运算符、变量和常量的定义、控制流程(条件语句、循环语句)以及函数定义等。
标准参考手册详细描述了这些特性的语法和语义。
3. 标准宏定义:C语言标准定义了一些宏,这些宏可以用于条件编译和编译器相关的操作。
例如,宏__FILE__和__LINE__可以用于在源代码中插入当前文件名和行号,便于调试和错误定位。
4. 标准兼容性:C语言的标准参考手册对于编译器的实现提供了指导性的要求。
一、数学函数调用数学函数时,要求在源文件中包下以下命令行:#include<math.h>函数原型说明功能返回值说明intabs(intx)求整数x的绝对值计算结果doublefabs(doublex)求双精度实数x的绝对值计算结果doubleacos(doublex)计算cos-1(x)的值计算结果x在-1~1范围内doubleasin(doublex)计算sin-1(x)的值计算结果x在-1~1范围内doubleatan(doublex)计算tan-1(x)的值计算结果doubleatan2(doublex)计算tan-1(x/y)的值计算结果doublecos(doublex)计算cos(x)的值计算结果x的单位为弧度doublecosh(doublex)计算双曲余弦cosh(x)的值计算结果doubleexp(doublex)求e x的值计算结果doublefabs(doublex)求双精度实数x的绝对值计算结果doublefloor(doublex)求不大于双精度实数x的最大整数doublefmod(doublex,doubley)求x/y整除后的双精度余数doublefrexp(doubleval,int *exp)把双精度val分解尾数和以2为底的指数n,即val=x*2n,n存放在exp所指的变量中返回位数x0.5≤x<1doublelog(doublex)求㏑x计算结果x>0 doublelog10(doublex)求log10x计算结果x>0doublemodf(doubleval,do uble*ip)把双精度val分解成整数部分和小数部分,整数部分存放在ip所指的变量中返回小数部分doublepow(doublex,doubley)计算x y的值计算结果doublesin(doublex)计算sin(x)的值计算结果x的单位为弧度doublesinh(doublex)计算x的双曲正弦函数sinh(x)的值计算结果doublesqrt(doublex)计算x的开方计算结果x≥0doubletan(doublex)计算tan(x)计算结果doubletanh(doublex)计算x的双曲正切函数tanh(x)的值计算结果二、字符函数调用字符函数时,要求在源文件中包下以下命令行:#include<ctype.h>函数原型说明功能返回值intisalnum(intch)检查ch是否为字母或数字是,返回1;否则返回0 intisalpha(intch)检查ch是否为字母是,返回1;否则返回0 intiscntrl(intch)检查ch是否为控制字符是,返回1;否则返回0 intisdigit(intch)检查ch是否为数字是,返回1;否则返回0intisgraph(intch)检查ch是否为ASCII码值在ox21到ox7e的可打印字符(即不包含空格字符)是,返回1;否则返回0intislower(intch)检查ch是否为小写字母是,返回1;否则返回0intisprint(intch)检查ch是否为包含空格符在内的可打印字符是,返回1;否则返回0intispunct(intch)检查ch是否为除了空格、字母、数字之外的可打印字符是,返回1;否则返回0intisspace(intch)检查ch是否为空格、制表或换行符是,返回1;否则返回0intisupper(intch)检查ch是否为大写字母是,返回1;否则返回0intisxdigit(intch)检查ch是否为16进制数是,返回1;否则返回0inttolower(intch)把ch中的字母转换成小写字母返回对应的小写字母inttoupper(intch)把ch中的字母转换成大写字母返回对应的大写字母三、字符串函数调用字符函数时,要求在源文件中包下以下命令行:#include<string.h>函数原型说明功能返回值char*strcat(char*s1,char*s2)把字符串s2接到s1后面s1所指地址char*strchr(char*s,intch)在s所指字符串中,找出第一次出现字符ch的位置返回找到的字符的地址,找不到返回NULLintstrcmp(char*s1,char*s2)对s1和s2所指字符串进行比较s1<s2,返回负数;s1==s2,返回0;s1>s2,返回正数char*strcpy(char*s1,char*s2)把s2指向的串复制到s1指向的空间s1?所指地址unsignedstrlen(char*s)求字符串s的长度返回串中字符(不计最后的'\0')个数char*strstr(char*s1,char*s2)在s1所指字符串中,找出字符串s2第一次出现的位置返回找到的字符串的地址,找不到返回NULL四、输入输出函数调用字符函数时,要求在源文件中包下以下命令行:#include<stdio.h>函数原型说明功能返回值voidclearer(FILE*fp)清除与文件指针fp有关的所有出错信息无intfclose(FILE*fp)关闭fp所指的文件,释放文件缓冲区出错返回非0,否则返回0intfeof(FILE*fp)检查文件是否结束遇文件结束返回非0,否则返回0intfgetc(FILE*fp)从fp所指的文件中取得下一个字符出错返回EOF,否则返回所读字符char*fgets(char*buf,intn,FILE*fp)从fp所指的文件中读取一个长度为n-1的字符串,将其存入buf所指存储区返回buf所指地址,若遇文件结束或出错返回NULLFILE*fopen(char*filename,char*mode)以mode指定的方式打开名为filename的文件成功,返回文件指针(文件信息区的起始地址),否则返回NULLintfprintf(FILE*fp,char*format,args,…)把args,…的值以format指定的格式输出到fp指定的文件中实际输出的字符数intfputc(charch,FILE*fp)把ch中字符输出到fp指定的文件中成功返回该字符,否则返回EOFintfputs(char*str,FILE*fp)把str所指字符串输出到fp所指文件成功返回非负整数,否则返回-1(EOF)intfread(char*pt,unsignedsize,unsignedn,FILE*fp)从fp所指文件中读取长度size为n个数据项存到pt所指文件读取的数据项个数intfscanf(FILE*fp,char*format,args,…)从fp所指的文件中按format指定的格式把输入数据存入到args,…所指的内存中已输入的数据个数,遇文件结束或出错返回0intfseek(FILE*fp,longoffer,intbase)移动fp所指文件的位置指针成功返回当前位置,否则返回非0longftell(FILE*fp)求出fp所指文件当前的读写位置读写位置,出错返回?-1Lintfwrite(char*pt,unsignedsize,unsignedn,FILE*fp)把pt所指向的n*size个字节输入到fp所指文件输出的数据项个数intgetc(FILE*fp)从fp所指文件中读取一个字符返回所读字符,若出错或文件结束返回EOFintgetchar(void)从标准输入设备读取下一个字符返回所读字符,若出错或文件结束返回-1char*gets(char*s)从标准设备读取一行字符串放入s所指存储区,用’\0’替换读入的换行符返回s,出错返回NULLintprintf(char*format,args,…)把args,…的值以format指定的格式输出到标准输出设备输出字符的个数intputc(intch,FILE*fp)同fputc同fputcintputchar(charch)把ch输出到标准输出设备返回输出的字符,若出错则返回EOFintputs(char*str)把str所指字符串输出到标准设备,将’返回换行符,若出\0’转成回车换行符错,返回EOFintrename(char*oldname,char*newname)把oldname所指文件名改为newname所指文件名成功返回0,出错返回-1voidrewind(FILE*fp)将文件位置指针置于文件开头无intscanf(char*format,args,…)从标准输入设备按format指定的格式把输入数据存入到args,…所指的内存中已输入的数据的个数五、动态分配函数和随机函数调用字符函数时,要求在源文件中包下以下命令行:#include<stdlib.h>函数原型说明功能返回值void*calloc(unsignedn,unsignedsize)分配n个数据项的内存空间,每个数据项的大小为size个字节分配内存单元的起始地址;如不成功,返回0void*free(void*p)释放p所指的内存区无void*malloc(unsignedsize)分配size个字节的存储空间分配内存空间的地址;如不成功,返回0void*realloc(void*p,unsignedsize)把p所指内存区的大小改为size个字节新分配内存空间的地址;如不成功,返回0intrand(void)产生0~32767的随机整数返回一个随机整数voidexit(intstate)程序终止执行,返回调用过程,state为0正常终止,非0非正常终止无。
c语言常用函数手册 chm格式/downinfo/19389.html全都很详细例如下面的函数名: abort功能: 异常终止一个进程用法: void abort(void);程序例:#include <stdio.h>#include <stdlib.h>int main(void){printf("Calling abort()\n");abort();return 0; /* This is never reached */}函数名: abs功能: 求整数的绝对值用法: int abs(int i);程序例:#include <stdio.h>#include <math.h>int main(void){int number = -1234;printf("number: %d absolute value: %d\n", number, abs(number)); return 0;}函数名: absread, abswirte功能: 绝对磁盘扇区读、写数据用法: int absread(int drive, int nsects, int sectno, void *buffer); int abswrite(int drive, int nsects, in tsectno, void *buffer);程序例:/* absread example */#include <stdio.h>#include <conio.h>#include <process.h>#include <dos.h>int main(void){int i, strt, ch_out, sector;char buf[512];printf("Insert a diskette into drive A and press any key\n");getch();sector = 0;if (absread(0, 1, sector, &buf) != 0){perror("Disk problem");exit(1);}printf("Read OK\n");strt = 3;for (i=0; i<80; i++){ch_out = buf[strt+i];putchar(ch_out);}printf("\n");return(0);}函数名: access功能: 确定文件的访问权限用法: int access(const char *filename, int amode);程序例:#include <stdio.h>#include <io.h>int file_exists(char *filename);int main(void){printf("Does NOTEXIST.FIL exist: %s\n",file_exists("NOTEXISTS.FIL") ? "YES" : "NO");return 0;}int file_exists(char *filename){return (access(filename, 0) == 0);}函数名: acos功能: 反余弦函数用法: double acos(double x);程序例:#include <stdio.h>#include <math.h>int main(void){double result;double x = 0.5;result = acos(x);printf("The arc cosine of %lf is %lf\n", x, result); return 0;}函数名: allocmem功能: 分配DOS存储段用法: int allocmem(unsigned size, unsigned *seg);程序例:#include <dos.h>#include <alloc.h>#include <stdio.h>int main(void){unsigned int size, segp;int stat;size = 64; /* (64 x 16) = 1024 bytes */stat = allocmem(size, &segp);if (stat == -1)printf("Allocated memory at segment: %x\n", segp);elseprintf("Failed: maximum number of paragraphs available is %u\n",stat);return 0;}函数名: arc功能: 画一弧线用法: void far arc(int x, int y, int stangle, int endangle, int radius); 程序例:#include <graphics.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>int main(void){/* request auto detection */int gdriver = DETECT, gmode, errorcode;int midx, midy;int stangle = 45, endangle = 135;int radius = 100;/* initialize graphics and local variables */initgraph(&gdriver, &gmode, "");/* read result of initialization */errorcode = graphresult(); /* an error occurred */if (errorcode != grOk){printf("Graphics error: %s\n", grapherrormsg(errorcode));printf("Press any key to halt:");getch();exit(1); /* terminate with an error code */ }midx = getmaxx() / 2;midy = getmaxy() / 2;setcolor(getmaxcolor());/* draw arc */arc(midx, midy, stangle, endangle, radius);/* clean up */getch();closegraph();return 0;}函数名: asctime功能: 转换日期和时间为ASCII码用法: char *asctime(const struct tm *tblock);程序例:#include <stdio.h>#include <string.h>#include <time.h>int main(void){struct tm t;char str[80];/* sample loading of tm structure */t.tm_sec = 1; /* Seconds */t.tm_min = 30; /* Minutes */t.tm_hour = 9; /* Hour */t.tm_mday = 22; /* Day of the Month */t.tm_mon = 11; /* Month */t.tm_year = 56; /* Year - does not include century */t.tm_wday = 4; /* Day of the week */t.tm_yday = 0; /* Does not show in asctime */t.tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime *//* converts structure to null terminatedstring */strcpy(str, asctime(&t));printf("%s\n", str);return 0;}函数名: asin功能: 反正弦函数用法: double asin(double x);程序例:#include <stdio.h>#include <math.h>int main(void){double result;double x = 0.5;result = asin(x);printf("The arc sin of %lf is %lf\n", x, result);return(0);}函数名: assert功能: 测试一个条件并可能使程序终止用法: void assert(int test);程序例:#include <assert.h>#include <stdio.h>#include <stdlib.h>struct ITEM {int key;int value;};/* add item to list, make sure list is not null */ void additem(struct ITEM *itemptr) {assert(itemptr != NULL);/* add item to list */}int main(void){additem(NULL);return 0;}函数名: atan功能: 反正切函数用法: double atan(double x);程序例:#include <stdio.h>#include <math.h>int main(void){double result;double x = 0.5;result = atan(x);printf("The arc tangent of %lf is %lf\n", x, result);return(0);}函数名: atan2功能: 计算Y/X的反正切值用法: double atan2(double y, double x);程序例:#include <stdio.h>#include <math.h>int main(void){double result;double x = 90.0, y = 45.0;result = atan2(y, x);printf("The arc tangent ratio of %lf is %lf\n", (y / x), result);return 0;}函数名: atexit功能: 注册终止函数用法: int atexit(atexit_t func);程序例:#include <stdio.h>#include <stdlib.h>void exit_fn1(void){printf("Exit function #1 called\n"); }void exit_fn2(void){printf("Exit function #2 called\n"); }int main(void){/* post exit function #1 */atexit(exit_fn1);/* post exit function #2 */atexit(exit_fn2);return 0;}函数名: atof功能: 把字符串转换成浮点数用法: double atof(const char *nptr); 程序例:#include <stdlib.h>#include <stdio.h>int main(void){float f;char *str = "12345.67";f = atof(str);printf("string = %s float = %f\n", str, f);return 0;}函数名: atoi功能: 把字符串转换成长整型数用法: int atoi(const char *nptr);程序例:#include <stdlib.h>#include <stdio.h>int main(void){int n;char *str = "12345.67";n = atoi(str);printf("string = %s integer = %d\n", str, n);return 0;}函数名: atol功能: 把字符串转换成长整型数用法: long atol(const char *nptr);程序例:#include <stdlib.h>#include <stdio.h>int main(void){long l;char *str = "98765432";l = atol(lstr);printf("string = %s integer = %ld\n", str, l);return(0);}。
合用标准文案C 库函数1. 数学函数头文件为 #include<math.h>也许 #include"math.h"函数名函数原型功能返回值说明absint abs(int x)求整数 x 的绝对值计算结果double acos(doubleX 应在-1 到1范围acos计算 cos -1 (x) 的值计算结果x)内X 应在-1 到1范围asindouble asin(double x)计算 sin -1 (x) 的值计算结果内atan double atan(double x) 计算 tan -1 (x) 的值计算结果double atan2(doubleAtan2计算 tan -1 (x/y) 的值计算结果x,double y)cos double cos(double x) 计算 cos(x) 的值 计算结果 X 的单位为弧度double cosh(double计算 x 的双曲余弦cosh计算结果x)函数 cosh(x) 的值exp double exp(double x) 求 e x的值 计算结果 fabsdouble fabs(double x)求 x 的绝对值计算结果该整数的double floor(double求出不大于 x 的最floor双精度实x)大整数数fmod double fmod(double 求整除 x/y 的余数 返回余数合用标准文案x,double y) double frexp(double的双精度实数把双精度数val 分解为数字局部(尾数 )x返回数字和以 2 为底的指数frexpval, int *eptr)n ,即 val=x*2局部 xn0.5 ≤x< 1log double log(double x)double log10(double log10x)Double modf(double modfval, double *iptr)double pow(double powx,double y) rand Int rand(void)n 存放在eptr指向的变量中求 log ex,即 ln x计算结果求 log10x计算结果把双精度数val 分解为整数局部和小数Val 的小数局部,把整数局部存局部到 iptr计算xy的值计算结果产生随机 -90 到32767间的随机整随机整数数sin Double sin(double x)计算sin x的值计算结果X 单位为弧度sinh double sinh(double x)计算x的双曲正弦计算结果函数 sinh(x) 的值sqrt Double sqrt(double x)计算x计算结果X 应≥0 tan Double tan(double x)计算tan(x)的值计算结果X 单位为弧度Double tanh(double计算x的双曲正切tanh计算结果x)函数 tanh(x) 的值2.字符函数和字符串函数函数名函数原型功能返回值包括文件检查 ch 是否是字母isalnu Int isalnum (int是字母或数字返(alpha) 或数字m ch);回 1 ;否那么返回 0(numeric)是,返回 1 ;不是,isalpha Int isalpha(int ch);检查 ch 可否字母那么返回 0检查 ch 可否控制字符是,返回 1 ;不是,iscntrl Int iscntrl (int ch);〔其 ASCII 码在 0 和那么返回 00x1F 之间〕检查 ch 可否为数字是,返回 1 ;不是,isdigit Int isdigit (int ch);〔0~9 〕那么返回 0检查 ch 可否可打印字符Int isgraph (int是,返回 1 ;不是,isgraph〔其 ASCII 码在 0x21 和ch);那么返回 00x7E 之间〕,不包括空格Int islower (int检查 ch 可否小写字母是,返回 1 ;不是,islowerch);〔 a~z 〕那么返回 0检查 ch 可否可打印字符,〔包括空格〕,其是,返回 1 ;不是,isprint Intisprint (int ch);ASCII 码在 0x20 和 0x7E那么返回 0之间,ispunct Int ispunct (int检查 ch 可否标点字符是,返回 1 ;不是,ch);〔不包括空格〕,即除字那么返回0母、数字和空格以外的所有可打印字符Int isspace (int检查ch可否空格符、跳是,返回1;不是,isspacech);格符〔制表符〕或换行符那么返回0Int isupper (int检查ch可否大写字母是,返回1;不是,isupperch);〔A~Z 〕那么返回0检查 ch 可否一个十六进Intisxdigit (int是,返回1;不是,isxdigit制数字字符〔即0~9 ,ch);那么返回 0或 A~F ,或 a~f 〕把字符串str2 接到 str1char *strcat(charstrcat后边,str1 最后边的’ \0 ’Str1 *str1,char *str2);被取消找出 str 指向的字符串中返回指向该地址char *strchr(charstrchr第一次出现字符ch 的位的指针,如找不*str,int ch);置到,那么返回空指针Str1 <str2 ,返回负数;char *strcmp(char比较两个字符串str1 、Str1 =str2 ,返回strcmp*str1,char *str2);str20 ;str1 > str2 ,返回正数。
标准库ANSI C包含了15个头文件Assert.hFloat.hMath.hStdarg.hStdlib.hCtype.hLimits.hSetjmp.hStddef.hString.hErrno.hLocale.hSignal.hStdio.hTime.h标准库本身并不是C语言的构成部分,它是为开发C程序而制定的一种开发环境。
absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。
参数:drive=0对应A盘,drive=1对应B盘。
返回值:0:成功;-1:失败。
头文件:dos.habswrite()写磁盘绝对扇区函数原形:int abswrite(int drive,int nsects,int lsect,void *buffer)drive=0(A驱动器)、1(B驱动器)、nsects=要写的扇区数(最多64K个);lsect=起始逻辑扇区号;buffer=要写入数据的内存起始地址。
功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。
返回值:0:成功;-1:失败。
头文件:dos.hatof()将字符串转换成浮点数的函数原形:double atof(const char *s)功能:把s所指向的字符串转换成double类型。
s格式为:符号数字.数字E符号数字返回值:字符串的转换值。
头文件:math.h、stdlib.hatoi()将字符串转换成整型数的函数原形:int atoi(const char *s)功能:把s所指向的字符串转换成int类型。
C语言中最常用标准库函数-candyliuxj-CSDN博客C语言中最常用标准库函数- candyliuxj - CSDN博客C语言中最常用标准库函数收藏标准头文件包括:<asset.h> <ctype.h> <errno.h> <float.h><limits.h> <locale.h> <math.h> <setjmp.h><signal.h> <stdarg.h> <stddef.h> <stdlib.h><stdio.h> <string.h> <time.h>一、标准定义(<stddef.h>)文件<stddef.h>里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,<stddef.h>都会被自动包含进来。
这个文件里定义:l 类型size_t (sizeof运算符的结果类型,是某个无符号整型);l 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);l 类型wchar_t (宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的字符集的所有编码值。
这里还保证空字符的编码值为0);l 符号常量NULL (空指针值);l 宏offsetor (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构成员名。
offsetor(s,m)求出成员m在结构类型t的变量里的偏移量)。
注:其中有些定义也出现在其他头文件里(如NULL)。
二、错误信息(<errno.h>)<errno.h>定义了一个int类型的表达式errno,可以看作一个变量,其初始值为0,一些标准库函数执行中出错时将它设为非0值,但任何标准库函数都设置它为0。
ANSIC标准函数库(中文)ANSIC标准函数库(中文)标准库ANSI C包含了15个头文件Assert.hFloat.hMath.hStdarg.hStdlib.hCtype.hLimits.hSetjmp.hStddef.hString.hErrno.hLocale.hSignal.hStdio.hTime.h标准库本身并不是C语言的构成部分,它是为开发C程序而制定的一种开发环境。
absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能:从drive指定的驱动器磁盘上,sectnum 指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。
参数:drive=0对应A盘,drive=1对应B盘。
返回值:0:成功;-1:失败。
头文件:dos.habswrite()写磁盘绝对扇区函数原形:int abswrite(int drive,int nsects,int lsect,void *buffer)drive=0(A驱动器)、1(B驱动器)、nsects=要写的扇区数(最多64K个);lsect=起始逻辑扇区号;buffer=要写入数据的内存起始地址。
功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。
返回值:0:成功;-1:失败。
头文件:dos.hatof()将字符串转换成浮点数的函数原形:double atof(const char *s)功能:把s所指向的字符串转换成double类型。
s格式为:符号数字.数字E符号数字返回值:字符串的转换值。
头文件:math.h、stdlib.hatoi()将字符串转换成整型数的函数原形:int atoi(const char *s)功能:把s所指向的字符串转换成int类型。
C语言参考手册语言ASCII动态内存管理mallocfreerealloc日期和时间工具time字符串库转换成数值格式atoistrtol字符串操作strcpystrcat字符串检验strlenstrcmpstrchrstrstr字符数组操作memsetmemcpy算法qsortbsearch数值rand输入/输出支持文件访问fopenfclose直接输入/输出freadfwrite无格式输入/输出fgetcfputcfgetsfputs有格式输入/输出fscanffprintf文件位置ftellfseekrewindC语言参考手册语言ASCII动态内存管理malloc头文件<stdlib.h>函数原型void*malloc(size_t size);函数说明分配size字节的未初始化内存.为避免内存泄漏,分配的内存需要释放.参数size - 要分配的字节数.返回值成功 - 指向新分配内存的指针.失败 - 空指针.free头文件<stdlib.h>函数原型void free(void*ptr);函数说明解分配之前由malloc()分配的内存.参数ptr - 指向要解分配的内存的指针.返回值(无).示例#include <stdlib.h>int main(void){int*p=malloc(sizeof(int) *4);free(p);}realloc头文件<stdlib.h>函数原型void*realloc(void*ptr, size_t new_size);函数说明重新分配new_size字节大小的内存区域.重新分配按以下二者之一执行:可能的话,扩张或收缩ptr所指向的已存在内存.内容在新旧大小中的较小者范围内保持不变. 若扩张范围,则数组新增部分的内容是未定义的.分配一个大小为new_size字节的新内存块,并复制大小等于新旧大小中较小者的内存区域,然后释放旧内存块.若无足够内存,则不释放旧内存块,并返回空指针.若ptr 是NULL,则行为与调用malloc(new_size)相同.参数ptr - 指向需要重新分配的内存区域的指针.new_size - 数组的新大小.返回值成功 - 指向新分配内存的指针. 原指针ptr被非法化.失败 - 空指针. 原指针ptr保持有效.示例#include <stdio.h>#include <stdlib.h>int main(void){int*pa=malloc(10*sizeof(int));if (pa){printf("%zu bytes allocated. Storing ints: ", 10*sizeof(int));for (int n=0; n<10; n++)printf("%d ", pa[n] =n);}int*pb=realloc(pa, 100*sizeof(int));if (pb){printf("\n%zu bytes allocated, first 10 ints are: ", 100*sizeof(int));for (int n=0; n<10; n++)printf("%d ", pb[n]);printf("\n");free(pb);}elsefree(pa);}输出40 bytes allocated. Storing ints: 0 1 2 3 4 5 6 7 8 9400 bytes allocated, first 10 ints are: 0 1 2 3 4 5 6 7 8 9日期和时间工具time头文件<time.h>函数原型time_t time(time_t*arg);函数说明返回编码成time_t 对象的当前日历时间,并将其存储于arg 指向的time_t对象(除非arg为空指针).参数arg - 指向将存储时间的time_t对象的指针,或空指针.返回值成功 - 编码成time_t对象的当前日历时间.失败 - (time_t)(-1).示例int main(void){time_t result=time(NULL);if(result!=-1)printf("%s(%ju seconds since the Epoch)\n",asctime(gmtime(&result)),(size_t)result);}输出Thu Mar 8 05:40:46 2018(1520487646 seconds since the Epoch)字符串库转换成数值格式atoi头文件<stdlib.h>函数原型int atoi(const char*str);函数说明将字符串转换成整数值.从首个非空白符开始,接收尽可能多的字符以组成合法的整数表示,并将其转换为整数值.若转换的值溢出,则返回值未定义.参数str - 指向字符串的指针.返回值成功 - 对应str内容的整数值.失败 - 0.示例int main(void){printf("%d\n", atoi(" -123junk"));printf("%d\n", atoi("0"));printf("%d\n", atoi("junk")); // 没有可进行的转换printf("%d\n", atoi("2147483648")); // UB: 在int范围之外}输出-123-2147483648strtol头文件<stdlib.h>函数原型long strtol(const char*str, char**str_end, int base);函数说明将字符串转换成整数值.从首个非空白符开始,取尽可能多的字符组成对应进制整数的字符串表示,并将它们转换成一个整数值.若被转换的值溢出,则发生值域错误并返回LONG_MAX 、LONG_MIN 、LLONG_MAX 或LLONG_MIN.参数str - 指向字符串的指针.str_end - 指向指向字符指针的指针.base - 字符串对应整数的进制.返回值成功 - 对应str内容的整数值.失败 - 0.示例int main(void){printf("\"1010\" in bin --> %ld\n", strtol("1010", NULL, 2));printf("\"12\" in oct --> %ld\n", strtol("12", NULL, 8));printf("\"A\" in hex --> %ld\n", strtol("A", NULL, 16));printf("\"junk\" in base36 --> %ld\n", strtol("junk", NULL, 36));}输出"1010" in bin --> 10"12" in oct --> 10"A" in hex --> 10"junk" in base36 --> 926192字符串操作strcpy头文件<string.h>函数原型char*strcpy(char*dst, const char*src);函数说明复制src所指向的字符串(包含'\0'),到首元素为dst所指的字符数组.若dst 不是指向字符数组的指针或src不是指向字符串的指针则行为未定义.若dst数组长度不足则行为未定义.若字符串覆盖则行为未定义.参数dst - 指向要写入的字符数组的指针.src - 指向要复制的字符串的指针.返回值dst的副本.示例int main(void){char*src="Take the test.";char dst[strlen(src) +1]; // +1以适应'\0'strcpy(dst, src);// src[0] = 'M'; // UBdst[0] ='M'; // OKprintf("src = %s\ndst = %s\n", src,dst);}输出src = Take the test.dst = Make the test.strcat头文件<string.h>函数原型char*strcat(char*dst, const char*src);函数说明将src 所指向的字符串的副本附加到dst 所指向的字符串的结尾.若目标数组相对于src 和dst的内容以及'\0'不够大,则行为未定义.若dst或src不是指向字符串的指针,则行为未定义.若字符串重叠,则行为未定义.参数dst - 指向要附加的字符串的指针.src - 指向要复制的字符串的指针.返回值dst的副本.示例int main(void){char dst[50] ="Hello";char src[50] ="World!";strcat(dst, src);strcat(dst, " ...");strcat(dst, " Goodbye World!");puts(dst);}输出Hello World! ... Goodbye World!字符串检验strlen头文件<string.h>函数原型size_t strlen(const char*str);函数说明返回给定字符串的长度.若str不是指向字符串的指针则行为未定义.参数str - 指向要检测的字符串的指针.返回值字符串str的长度.示例#include <stdio.h>#include <string.h>int main(void){const char str[] ="How many characters does this string contain?";printf("without null character: %zu\n", strlen(str));printf("with null character: %zu\n", sizeof str);}输出without null character: 45with null character: 46strcmp头文件<string.h>函数原型int strcmp(const char*lhs, const char*rhs);函数说明以字典序比较两个字符串.若lhs 或rhs不是指向字符串的指针,则行为未定义.参数lhs - 指向要比较的字符串的指针.rhs - 指向要比较的字符串的指针.返回值负值 - lhs 字典序中先出现于rhs.正值 - lhs 字典序中后出现于rhs.零 - lhs 与rhs相等.示例#include <stdio.h>#include <string.h>void demo(const char*lhs, const char*rhs){int rc=strcmp(lhs, rhs);if (rc==0)printf("[%s] equals [%s]\n", lhs,rhs);else if (rc<0)printf("[%s] precedes [%s]\n", lhs,rhs);else if (rc>0)printf("[%s] follows [%s]\n", lhs,rhs);}int main(void){const char*string="Hello World!";demo(string, "Hello!");demo(string, "Hello");demo(string, "Hello there");demo("Hello, everybody!"+12, "Hello,somebody!"+11);}输出[Hello World!] precedes [Hello!][Hello World!] follows [Hello][Hello World!] precedes [Hello there][body!] equals [body!]strchr头文件<string.h>函数原型char*strchr(const char*str, int ch);函数说明寻找ch 在str所指向的字符串中的首次出现位置.若str不是指向字符串的指针,则行为未定义.参数str - 指向字符串的指针.ch - 要搜索的字符.返回值指向str中找到的字符的指针,若未找到该字符则为空指针.示例#include <stdio.h>#include <string.h>int main(void){char target='T';const char*str="Try not. Do, or do not. There is no try.";const char*result=str;while((result=strchr(result, target)) !=NULL){printf("Found '%c' starting at '%s'\n", target, result);++result;}}输出Found 'T' starting at 'Try not. Do, ordo not. There is no try.'Found 'T' starting at 'There is no try.'strstr头文件<string.h>函数原型char*strstr(const char*str, const char*substr);函数说明查找substr 所指的字符串在str所指的字符串中的首次出现的位置.若str 或substr不是指向字符串的指针,则行为未定义.参数str - 指向要检验的字符串的指针.substr - 指向要查找的字符串的指针.返回值指向str中找到的子串首字符的指针.若找不到该子串则为NULL.若substr 指向空字符串,则返回str.示例#include <stdio.h>#include <string.h>void find_str(const char*str, const char*substr){char*pos=strstr(str, substr);if (pos)printf("found '%s' in '%s' at %ld\n", substr, str, pos-str);elseprintf("'%s' was not found in '%s'\n", substr, str);}int main(void){char*str="one twothree";find_str(str, "two");find_str(str, "");find_str(str, "nine");find_str(str, "n");}输出found 'two' in 'one two three' at 4found '' in 'one two three' at 0'nine' was not found in 'one two three'found 'n' in 'one two three' at 1字符数组操作memset头文件<string.h>函数原型void*memset(void*dst, int ch, size_t count);函数说明复制值ch 到dst 所指向对象的首count个字节.若出现dst数组结尾后的访问则行为未定义.若dst为空指针则行为未定义.参数dst - 指向要填充的对象的指针.ch - 填充字节.count - 要填充的字节数.返回值dst的副本.示例#include <stdio.h>#include <string.h>int main(void){char str[] ="ghghghghghghghghghghgh";puts(str);memset(str, 'a', 5);puts(str);}输出ghghghghghghghghghghghaaaaahghghghghghghghghmemcpy头文件<string.h>函数原型void*memcpy(void*dst, const void*src, size_t count);函数说明从src 所指向的对象复制count 个字符到dst所指向的对象.若访问发生在dst数组结尾后则行为未定义.若dst 或src为空指针则行为未定义.若对象重叠,则行为未定义.参数dst - 指向要复制的对象的指针.src - 指向复制来源对象的指针.count - 复制的字节数.返回值dst的副本.示例#include <stdio.h>#include <string.h>int main(void){int arr[3] = {1, 2, 3};int tmp[3];char dst[4];char source[] ="once upon a midnight dreary...";memcpy(dst, source, sizeof dst);for (size_t n=0; n<sizeof dst; ++n)putchar(dst[n]);putchar('\n');memcpy(tmp, arr, 3*sizeof(int));for (size_t n=0; n<3; ++n)printf("%d", tmp[n]);putchar('\n');}输出once123算法qsort头文件<stdlib.h>函数原型void qsort(void*ptr, size_t count, size_t size,int (*comp)(const void*, const void*));函数说明对ptr所指向的数组以升序排序.数组包含count 个长度为size字节的元素.参数ptr - 指向待排序的数组的指针.count - 数组的元素数目.size - 数组每个元素的字节大小.comp - 比较函数.比较函数的签名应等价于如下形式:int comp(const void* a, const void* b);若首个参数小于第二个,则返回负整数值.若首个参数大于第二个,则返回正整数值.若两参数相等,则返回零.返回值(无).示例#include <stdio.h>#include <stdlib.h>#include <limits.h>int compare(const void*a, const void*b){int arg1= (const int) a;int arg2= (const int) b;if (arg1<arg2) return-1;if (arg1>arg2) return1;else return0;// return (arg1 > arg2) - (arg1 < arg2); // 可行的简写// return arg1 - arg2; // 错误的简写(若给出 INT_MIN 则会失败)}int main(void){int ints[] = {-2, 99, 0, -743, 2, INT_MIN, 4};int size=sizeof ints/sizeof*ints;qsort(ints, size, sizeof(int), compare);for (int i=0; i<size; i++)printf("%d\n", ints[i]);}输出-2147483648-743-22499bsearch头文件<stdlib.h>函数原型void*bsearch(const void*key, const void*ptr, size_t count, size_t size,int (*comp)(const void*, const void*));函数说明在ptr 所指向的数组中寻找等于key所指向的元素.数组包含count 个长度为size字节的元素.若数组元素没有初始有序,则行为未定义.参数Key - 指向要查找的元素的指针.ptr - 指向要检验的数组的指针.count - 数组的元素数目.size - 数组每个元素的字节数.comp - 比较函数.比较函数的签名应等价于如下形式:int comp(const void* a, const void* b);若首个参数小于第二个,则返回负整数值.若首个参数大于第二个,则返回正整数值.若两参数相等,则返回零.返回值指向与*key比较相等的指针,在找不到元素时返回空指针.示例#include <stdio.h>#include <stdlib.h>typedef struct{int nr;char const*value;} Data;Data dat[] = {{1, "Foo"}, {2, "Bar"}, {3, "Hello"}, {4, "World"}};int compare(void const*a, void const*b){const Data*const l=a;const Data*const r=b;if (l->nr<r->nr) return-1;else if (l->nr>r->nr) return1;else return0;// return (l->nr > r->nr) - (l->nr <r->nr); // 可行的简洁写法// return l->nr - r->nr; // 错误的简洁写法(若给出INT_MIN就会失败)}int main(void){Data key= { .nr=3 };const Data*res=bsearch(&key, dat, sizeof dat/sizeof dat[0],sizeof dat[0], compare);if (res)printf("No %d: %s\n",res->nr, res->value);elseprintf("No %d not found\n", key.nr);}输出No 3: Hello数值rand头文件<stdlib.h>函数原型int rand();函数说明返回[0, RAND_MAX]范围的随机整数值.参数(无) .返回值[0,RAND_MAX]范围的随机整数值.示例#include <stdio.h>#include <stdlib.h>#include <time.h>int main(void){// 以当前时间为随机数生成器的种子// 若在srand()的调用前使用rand(),则如同以srand(1)播种// srand()中的相同seed产生相同的值数列srand(time(NULL));int random=rand();printf("Random value on [0, %d]: %d\n", RAND_MAX, random);}输出Random value on [0, 2147483647]:1328633460输入/输出支持文件访问fopen头文件<stdio.h>函数原型FILE*fopen(const char*filename, const char*mode);函数说明打开filename所指示的文件,并返回指向关联到该文件的文件流的指针.参数filename - 关联到文件系统的文件名.mode - 访问模式.返回值成功 - 指向新文件流的指针.失败 - 空指针.fclose头文件函数原型函数说明关闭给定的文件流.参数stream - 需要关闭的文件流.返回值成功 - 0.失败 - EOF .示例<stdio .h >int fclose (FILE * stream );#include <stdio.h>#include <stdlib.h>int main(void){int c; // 注意:int,非char,要求处理EOFFILE*fp=fopen("test.txt", "r");if(!fp){perror("File opening failed");return EXIT_FAILURE;}while ((c=fgetc(fp)) !=EOF) // 标准C I/O读取文件循环putchar(c);if (ferror(fp))puts("I/O error when reading");else if (feof(fp))puts("End of file reached successfully");fclose(fp);}直接输入/输出fread头文件<stdio.h>函数原型size_t fread(void*buffer, size_t size, size_t count, FILE*stream);函数说明从给定输入流stream 读取至多count 个对象到数组buffer中.参数buffer - 指向要读取的数组中首个对象的指针.size - 每个对象的字节大小.count - 要读取的对象数.stream - 读取来源的输入文件流.返回值成功读取的对象数,若出现错误或文件尾条件,则可能小于count.若size 或count 为零,则fread返回零且不进行其他动作.fwrite头文件<stdio.h>函数原型size_t fwrite(const void*buffer, size_t size, size_t count, FILE*stream);函数说明写count 个来自给定数组buffer 的对象到输出流stream.参数buffer - 指向数组中要被写入的首个对象的指针.size - 每个对象的大小.count - 要被写入的对象数.stream - 指向输出流的指针.返回值成功写入的对象数,若错误发生则可能小于count.若size 或count 为零,则fwrite返回零并不进行其他行动.示例#include <stdio.h>#include <stdlib.h>enum { SIZE=5 };int main(void){double a[SIZE] = {1, 2, 3, 4, 5};double b[SIZE];int r1, r2;FILE*f1;FILE*f2;f1=fopen("file.bin", "wb");r1=fwrite(a, sizeof a[0], SIZE, f1);printf("wrote %d elements out of %d requested\n", r1, SIZE);fclose(f1);f2=fopen("file.bin", "rb");r2=fread(b, sizeof b[0], SIZE, f2);fclose(f2);printf("read back: ");for (int i=0; i<r2; i++)printf("%f ", b[i]);printf("\n");}输出wrote 5 elements out of 5 requestedread back: 1.000000 2.000000 3.0000004.000000 5.000000 无格式输入/输出fgetc头文件<stdio.h>函数原型int fgetc(FILE*stream);函数说明从给定的输入流读取下一个字符.参数stream - 读取字符的来源.返回值成功 - 获得的字符.失败 - EOF.fputc头文件<stdio.h>函数原型int fputc(int ch, FILE*stream);函数说明写入字符ch 到给定输出流stream.参数ch - 要被写入的字符.stream - 输出流.返回值成功 - 被写入的字符.失败 - EOF.示例#include <stdio.h>#include <stdlib.h>int main(void){int c;char ch;int ret_code=0;FILE*fp=fopen("test.txt", "w");for (ch='a'; ret_code!=EOF&&ch!='z'; ch++)ret_code=fputc(ch, fp);fclose(fp);fp=fopen("test.txt", "r");while ((c=fgetc(fp)) !=EOF)putchar(c);fclose(fp);putchar('\n');}输出abcdefghijklmnopqrstuvwxyfgets头文件<stdio.h>函数原型char*fgets(char*str, int count, FILE*stream);函数说明从给定文件流读取最多count - 1个字符并存储于str所指向的字符数组.若文件尾出现或发现换行符则终止分析,后一情况下str将包含一个换行符.若无错误发生,则紧随写入到str 的最后一个字符后写入'\0'.若count 小于1则行为未定义.参数str - 指向char数组元素的指针.count - 写入的最大字符数(典型的为str的长度) .stream - 读取数据来源的文件流.返回值成功 - 指向字符串的指针.失败 - NULL.fputs头文件<stdio.h>函数原型int fputs(const char*str, FILE*stream);函数说明写入字符串str 的每个字符到stream ,不写入'\0'.参数str - 要写入的空终止字符串.stream - 输出流.返回值成功 - 非负值.失败 - EOF.示例#include <stdio.h>#include <stdlib.h>int main(void){char buf[8];FILE*tmpf=tmpfile();fputs("Alan Turing\n", tmpf);fputs("John von Neumann\n", tmpf);fputs("Alonzo Church\n", tmpf);rewind(tmpf);while (fgets(buf, sizeof buf, tmpf) !=NULL)printf("\"%s\"\n", buf);if (feof(tmpf))puts("End of file reached");}输出"Alan Tu""ring""John vo""n Neuma""nn""Alonzo ""Church"End of file reached有格式输入/输出fscanf头文件<stdio.h>函数原型int fscanf(FILE*stream, const char*format, ...);函数说明从文件流stream读取数据.参数stream - 要读取的输入文件流.format - 格式字符串.返回值成功 - 赋值的接收参数的数量.失败 - EOF.fprintf头文件<stdio.h>函数原型int fprintf(FILE*stream, const char*format, ...);函数说明写结果到文件流stream.参数stream - 要写入的输出文件流.format - 格式字符串.返回值成功 - 传输到输出流的字符数.失败 - 负值.示例#include <stdio.h>#include <stdlib.h>int main(void){char buf[8];FILE*tmpf=tmpfile();fprintf(tmpf, "Alan Turing\n");fprintf(tmpf, "John von Neumann\n");fprintf(tmpf, "Alonzo Church\n");rewind(tmpf);while (fscanf(tmpf, "%s", buf) !=EOF)printf("\"%s\"\n", buf);if (feof(tmpf))puts("End of file reached");}输出"Alan""Turing""John""von""Neumann""Alonzo""Church"End of file reached文件位置ftell头文件<stdio.h>函数原型long ftell(FILE*stream);函数说明返回流stream的文件位置指示器.若流以二进制模式打开,则由此函数获得的值是从文件开始的字节数.若流以文本模式打开,则由此函数返回的值未指定,且仅作为fseek()的输入才有意义.参数stream - 要检验的文件流.返回值成功 - 文件位置指示器.失败 - EOF .fseek头文件<stdio.h>函数原型int fseek(FILE*stream, long offset, int origin);函数说明设置文件流stream的文件位置指示器.若stream 以二进制模式打开,则新位置为从origin 开始后的offset字节.若stream 以文本模式打开,则仅有的受支持的offset 值为零(origin值不受限制)或先前在同一文件流上对ftell()的调用的返回值(origin 值只能是SEEK_SET)。
stdlib.h用法1函数名称:callo c函数原型:void* cal loc(u nsign ed n,unsig n siz e);函数功能: 分配n个数据项的内存连续空间,每个数据项的大小为size 函数返回: 分配内存单元的起始地址,如果不成功,返回02函数名称:free函数原型: vo id fr ee(vo id* p);函数功能:释放p所指的内存区函数返回:参数说明: p-被释放的指针3函数名称:mallo c函数原型:void* mal loc(u nsign ed si ze);函数功能: 分配size字节的存储区函数返回: 所分配的内存区地址,如果内存不够,返回04函数名称: r eallo c函数原型:void* rea lloc(void* p,u nsign ed si ze);函数功能: 将p所指出的已分配内存区的大小改为size,size可以比原来分配的空间大或小函数返回:返回指向该内存区的指针.NU LL-分配失败5函数名称: ran d函数原型:int r and(v oid);函数功能: 产生0到32767间的随机整数(0到0x7fff之间)函数返回:随机整数6函数名称: a bort函数原型: vo id ab ort(v oid)函数功能: 异常终止一个进程.7函数名称: exi t函数原型:voidexit(int s tate)函数功能: 程序中止执行,返回调用过程函数返回:参数说明: s tate:0-正常中止,非0-非正常中止8函数名称:geten v函数原型:char* gete nv(co nst c har *name)函数功能: 返回一个指向环境变量的指针函数返回:环境变量的定义参数说明: nam e-环境字符串9函数名称: put env函数原型: int pute nv(co nst c har *name)函数功能: 将字符串na me增加到DOS环境变量中函数返回: 0:操作成功,-1:操作失败参数说明:name-环境字符串10函数名称: labs函数原型: l ong l abs(l ong n um)函数功能: 求长整型参数的绝对值函数返回:绝对值11函数名称:atof函数原型: do ubleatof(char*str)函数功能: 将字符串转换成一个双精度数值函数返回: 转换后的数值参数说明: str-待转换浮点型数的字符串12函数名称: at oi函数原型: intatoi(char*str)函数功能: 将字符串转换成一个整数值函数返回:转换后的数值参数说明:str-待转换为整型数的字符串13函数名称: atol函数原型: l ong a tol(c har *str)函数功能: 将字符串转换成一个长整数函数返回: 转换后的数值参数说明: s tr-待转换为长整型的字符串14函数名称:ecvt函数原型: ch ar *e cvt(d ouble valu e,int ndig it,in t *de c,int *sig n) 函数功能:将浮点数转换为字符串函数返回:转换后的字符串指针参数说明: va lue-待转换底浮点数,ndi git-转换后的字符串长度15函数名称: f cvt函数原型: cha r *fc vt(do ublevalue,intndigi t,int *dec,int*sign) 函数功能:将浮点数变成一个字符串函数返回:转换后字符串指针参数说明: val ue-待转换底浮点数,ndig it-转换后底字符串长度。
数学函数数学函数的原型math.h中数学函数表函数名称函数与型参类型函数功能返回值acos double acos(x)double x;计算cos-1(x)的值-1<=x<=1计算结果asin double asin(x)double x;计算sin-1(x)的值1<=x<=1计算结果atan double atan(x)double x;计算tan-1(x)的值计算结果atan2 double atan2(x,y)double x;计算tan-1(x/y)的值计算结果cos double cos(x)double x;计算cos(x)的值x的单位为弧度计算结果cosh double cosh(x)double x;计算x的双曲余弦cosh的值计算结果exp double exp(x)double x;求e x的值计算结果fabs double fabs(x)double x;求x的绝对值计算结果floor double floor(x)double x;求不大于x的最大整数该整数的双精度实数fmod double fmod(x,y)double x,y;求整除x/y的余数返回余数的双精度实数frexp double frexp(val,eptr)double val;int * eptr把双精度数val分解为数字部分(尾数)和以2为底的指数n,即val=x*2n,n存放在eptr指向的变量中数字部分x0.5<=x<1log double log(x)double x;求logex即lnx 计算结果log10 double log 10(x)double x;求log10x 计算结果modf double modf(val,iptr)double val;double * iptr把双精度数val分解为整数部分和小数部分,把整数部分存到iptr指向的单元val的小数部分pow double pow (x,y)double x,y计算x y的值计算结果sin double sin(x)double x;计算sin(x)的值x的单位为弧度计算结果sinh double sinh(x)double x;计算x的双曲线正弦函数sinh(h)的值计算结果sprt double sprt(x)double x;计算x(x>=0)计算结果tan double tan(x)double x;计算tan(x)的值x位为弧度计算结果tanh double tanh(x)double x;计算x的双曲线正切函数tanh(x)的值计算结果字符函数字符函数原型在ctype.h中字符函数表函数名称函数与行参类型函数功能返回值isalnum int isalnum(ch)int ch; 检查ch是否字母或数字是字母或数字返回;否则返回0isalpha int isalpha(ch)int ch; 检查ch是否字母是字母返回1;则返回0iscntrl int iscntrl(ch)int ch;检查ch是否控制字母(其ASCII码在0和0xlf之间)是控制字符,返回1;否则返回0isdigit int isdigit(ch)int ch; 检查ch是否数字(0~9)是数字返回1;否则返回0isgraph int isgraph(ch)int ch; 检查ch是否是可打印字符(其ASII码在0×21到0×7e之间)不包括空格是打印字符返回1;否则返回0islower int islower(ch)int ch 检查ch是否是小写字母(a~z)是小写字母返回1;否则返回0isprint int isprint(ch)int ch 检查ch是否可打印字符(不包括空格),其ASCII码值在0×21到0×7e之间是可打印字符,返回1;否则返回0isspace int isspace(ch)int ch; 检查ch是否空格、跳格符(制表符)或换行符是,返回1;否则返回0isupper int isupper(ch)int ch;检查ch是否大写字母(A~Z)是大写字母,返回1;否则返回0isxdigit int isxdigit(ch)int ch检查ch是否一个十六进制数字(即0~9,或A~F,a~f)是,返回1;否则返回0tolower int tolower(ch)int ch将ch字符转换为小写字母返回ch对应的小写字母toupper int toupper(ch)int ch将ch字符转换为大写字母返回ch对应的大写字母字符串函数字符串函数原型在string.h中字符串函数表函数名称函数与行参类型函数功能返回值memchr void memchr(buf,ch,count)void * buf;char ch;Unsigned int count;在buf的前count个字符里搜索字符ch首次出现的位置返回值指向buf中ch第一次出现的位置指针;若没有找到ch返回NULLmemcmp int memcmp(buf1,buf2,count)void * buf1,* buf2;unsigned int count按字典顺序比较由buf1和buf2指向数组的前count个字符buf1<buf2,为负数;buf1=buf2;返回0;buf1>buf2;为正数;memcpy void *memcpy(to,from,count)void * to,*from;unsigned int count;将from指向数组中的前count个字符拷贝到to指向的数组中,from和to指向的数组不允许重叠返回指向to的指针mem- move void * mem-move(to,from,count)void * to,* from;unsigned int count;将from指向的数组中的前count个字符拷贝到to指向的数组中,from和to指向的数组可以允许重叠返回指向to的指针memset void * memset(buf,ch,count)void * buf;char ch;unsigned int count;将字符ch拷贝到buf所指向的数组的前count个字符串返回bufstcat char * strcat(str1,str2)char *str1, * str2;把字符串str2街道str1后面,取消原来的str1最后面的串结束符'\0'返回str1strchr char * strchr(str,ch)char * str;int ch;找出str指向的字符串中第一次出现字符ch的位置。
附录C C语言常用的库函数
库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并提供给用户使用的一组程序。
每一种C编译系统都提供了一批库函数,不同的编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。
ANSIC标准提出了一批建议提供的标准库函数。
它包括了目前多数C编译系统所提供的库函数,但也有一些是某些C编译系统未曾实现的。
考虑到通用性,本附录列出ANSIC建议的常用库函数。
由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不能全部介绍,只从教学需要的角度列出最基本的。
读者在编写C程序时可根据需要,查阅有关系统的函数使用手册。
1.数学函数
使用数学函数时,应该在源文件中使用预编译命令:
2.字符函数
在使用字符函数时,应该在源文件中使用预编译命令:
3.字符串函数
使用字符串中函数时,应该在源文件中使用预编译命令:
4.输入输出函数
在使用输入输出函数时,应该在源文件中使用预编译命令:
5.动态存储分配函数
在使用动态存储分配函数时,应该在源文件中使用预编译命令:
6.其他函数
有些函数由于不便归入某一类,所以单独列出。
使用这些函数时,应该在源文件中使用预编译命令:。
C语言标准库函数
郝培林整理
A abort 功能异常终止程序 头文件 stdlib.h 语法 void abort(void); abs
功能整数的绝对值 头文件 stdlib.h 语法 int abs(int j); 返回值整数 j 的绝对值。如果不能表示 j 的绝对值,那么函数的行为是未定义的。 absread
功能读磁盘绝对扇区函数 头文件 dos.h 语法 int absread(int drive,int num,int sectnum,void *buf) 返回值 0:成功;-1:失败。 abswrite
功能写磁盘绝对扇区函数 头文件 dos.h 语法 int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A 驱动器)、1(B 驱动器)、 nsects=要写的扇区数(最多 64K 个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。
返回值 0:成功;-1:失败。 acos
功能 反余弦头文件 math.h 语法 math.hdouble acos(double x);
返回值 x 的反余弦值。返回值的范围在 0 到π之间。如果 x 的值不在−1 到+1 之间,那么就会发 生定义域错误。 asctime
功能把日期和时间转换成 ASCII 码 头文件 time.h 语法 char *asctime(const struct tm *timeptr); 返回值指向以空字符结尾的字符串的指针。 asin
功能反正弦 头文件 math.h 语法 double asin(double x); 返回值 x 的反正弦值。返回值的范围在-π/2 到π/2 之间。如果 x 的值不在-1 到+1 之间,那么
就会发生定义域错误。 assert
功能诊断表达式的真值 头文件 assert.h 语法 void assert(int expression); atan
功能反正切 头文件 math.h 语法 double atan(double x); 返回值 x 的反正切值。返回值的范围在−π/2 到π/2 之间。 atexit
功能在程序退出处注册要调用的函数 头文件 stdlib.h 语法 int atexit(void (*func)(void)); 返回值如果成功,返回零。如果不成功,则返回非零(达到由实现定义的限制) 。 atof
功能将字符串转换成浮点数的函数 头文件 math.h、stdlib.h 语法 double atof(const char *s) 返回值字符串的转换值。 atoi
功能将字符串转换成整型数的函数 头文件 stdlib.h 语法 int atoi(const char *s) 返回值字符串的转换值。若出错则返回 0。 atol
功能将字符串转换成长整型数的函数 头文件 stdlib.h 语法 long atol(const char *s) 返回值字符串的转换值。若出错则返回 0。 B bcd 功能把一个数转换成对应的 BCD 码的函数 头文件 bcd.h 语法 bcd bcd(int x) bcd bcd(double x) bcd bcd(double x,int decimals) biosdisk
功能调用 BIOS 磁盘驱动程序函数头文件 bios.h 语法 char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)
返回值 0x00-操作成功 0x01-错误命令 0x03-企图写具有写保护的磁盘 0x07-驱动器参数设置错误 0x10-磁盘读/CRC/ECC 错误 biosprint
功能调用 BIOS 打印机 I/O 接口的函数 头文件 bios.h 语法 int biosprint(int cmd,int abyte,int port) 返回值 打印机状态 位 0(设备超时);位 3(I/O 出错);位 4(打印机已选择);位 5(没纸);位 6(打印机确认);位 7(不忙)
bsearch
功能二分检索 头文件 stdlib.h 语法 void *bsearch(const void *key, const void *base,size_t memb,size_t size, int (*compar)(const void *, const void *)); 返回值指向数组元素的指针,此数组元素是用来测试是否等于关键字的。
C calloc 功能分配内存函数 头文件 stdlib.h、calloc.h 语法 void *calloc(size_t nitems,size_t size) 返回值返回指向新分配内存的指针。空间不够则返回 NULL。 ceil
功能求不小于 num 的最小双精度整数 头文件 math.h 语法 double ceil(double num) cgets
功能读字符串函数 头文件 conio.h 语法 char *cgets(char *str) 返回值 指向 str[2]的指针。 chdir
功能改变当前目录的函数 头文件 dir.h 语法 int chdir(const char *path) 返回值 0(成功);-1(失败) _chmod
功能改变文件存取权限的函数 头文件 io.h、dos.h 语法 int _chmod(const char *path,int func[,int attrib]) 返回值 失败时返回-1。成功时返回文件的属性字节,如果 返回值&FA_RDONLY 不等于 0,则文件是只读文件;......
chmod
功能改变文件存取权限的函数 头文件 io.h、sys\stat.h 语法 int chmod(const char *path,int amode) 返回值 0(成功);-1(失败) clearer
功能清除流错误 头文件 stdio.h 语法 void clearerr(FILE *stream); clock
功能 测得从程序开始到调用处处理机所用的时间 头文件 time.h 语法 long clock(void) close
功能关闭文件函数 头文件 io.h 语法 int close(int handle) 返回值 0(成功);-1(失败) closegraph
功能关闭图形函数 头文件 graphics.h 语法 void far closegraph(void) cos
功能 计算 arg(弧度)的余弦值 头文件 math.h 语法 double cos(double arg) ctime
功能把日期和时间转换成字符串 头文件 time.h 语法 char *ctime(const time_t *timer); 返回值指向字符串的指针,此字符串描述了本地时间,此时间等价于 timer 指向的日历时间。等价于 asctime(localtime(timer))。
ctrlbrk
功能 设置 ctrl-break 处理程序的函数 头文件 dos.h 语法 void ctrlbrk(int(*handle)(void)) D
delay 功能暂停函数 头文件 dos.h 语法 void delay(unsigned milliseconds) disable
功能屏蔽中断的宏 头文件 dos.h 语法 void disble(void) difftime
功能 时间差头文件 time.h 语法 double difftime(time_t time1, time_t time0); 返回值 time0(较早的时间)和 time1 之间的差值,此值按秒来衡量。 div 功能整数除法 头文件 stdlib.h 语法 div_t div(int numer, int denom); 返回值 含有 quot(numer 除以 denom 时的商)和 rem(余数)的结构。如果无法表示结果,那么函数的行为是未定义的。
E
enable 功能开硬件中断的宏 头文件 dos.h 语法 void enable(void) exit
功能退出程序 头文件 stdlib.h 语法 void exit(int status); exp
功能 指数头文件 math.h 语法 double exp(double x); 返回值 e 的 x 次幂的值(即 ex)。如果 x 的数过大,那么可能会发生取值范围错误。