1、附录C C语言常用的库函数库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录列出ANSI C建议的常用库函数。由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不能全部介绍,只从教学需要的角度列出最基本的。读者在编写C
2、程序时可根据需要,查阅有关系统的函数使用手册。1数学函数使用数学函数时,应该在源文件中使用预编译命令:#include 或#include math.h函数名函数原型功能返回值acosdouble acos(double x);计算arccos x的值,其中-1=x=1计算结果asindouble asin(double x);计算arcsin x的值,其中-1=x=1计算结果atandouble atan(double x);计算arctan x的值计算结果atan2double atan2(double x, double y);计算arctan x/y的值计算结果cosdouble co
3、s(double x);计算cos x的值,其中x的单位为弧度计算结果coshdouble cosh(double x);计算x的双曲余弦cosh x的值计算结果expdouble exp(double x);求ex的值计算结果fabsdouble fabs(double x);求x的绝对值计算结果floordouble floor(double x);求出不大于x的最大整数该整数的双精度实数fmoddouble fmod(double x, double y);求整除x/y的余数返回余数的双精度实数frexpdouble frexp(double val, int *eptr);把双精度数v
4、al分解成数字部分(尾数)和以2为底的指数,即val=x*2n,n存放在eptr指向的变量中数字部分x0.5=x1logdouble log(double x);求lnx的值计算结果log10double log10(double x);求log10x的值计算结果modfdouble modf(double val, int *iptr);把双精度数val分解成数字部分和小数部分,把整数部分存放在ptr指向的变量中val的小数部分powdouble pow(double x, double y);求xy的值计算结果sindouble sin(double x);求sin x的值,其中x的单位为
5、弧度计算结果sinhdouble sinh(double x);计算x的双曲正弦函数sinh x的值计算结果sqrtdouble sqrt (double x);计算,其中x0计算结果tandouble tan(double x);计算tan x的值,其中x的单位为弧度计算结果tanhdouble tanh(double x);计算x的双曲正切函数tanh x的值计算结果2字符函数在使用字符函数时,应该在源文件中使用预编译命令:#include 或#include ctype.h函数名函数原型功能返回值isalnumint isalnum(int ch);检查ch是否字母或数字是字母或数字返回
6、1,否则返回0isalphaint isalpha(int ch);检查ch是否字母是字母返回1,否则返回0iscntrlint iscntrl(int ch);检查ch是否控制字符(其ASCII码在0和0xlF之间)是控制字符返回1,否则返回0isdigitint isdigit(int ch);检查ch是否数字是数字返回1,否则返回0isgraphint isgraph(int ch);检查ch是否是可打印字符(其ASCII码在0x21和0x7e之间),不包括空格是可打印字符返回1,否则返回0islowerint islower(int ch);检查ch是否是小写字母(az)是小字母返回1
7、,否则返回0isprintint isprint(int ch);检查ch是否是可打印字符(其ASCII码在0x21和0x7e之间),不包括空格是可打印字符返回1,否则返回0ispunctint ispunct(int ch);检查ch是否是标点字符(不包括空格)即除字母、数字和空格以外的所有可打印字符是标点返回1,否则返回0isspaceint isspace(int ch);检查ch是否空格、跳格符(制表符)或换行符是,返回1,否则返回0isupperint isupper(int ch);检查ch是否大写字母(AZ)是大写字母返回1,否则返回0isxdigitint isxdigit(i
8、nt ch);检查ch是否一个16进制数字(即09,或A到F,af)是,返回1,否则返回0tolowerint tolower(int ch);将ch字符转换为小写字母返回ch对应的小写字母toupperint toupper(int ch);将ch字符转换为大写字母返回ch对应的大写字母3字符串函数使用字符串中函数时,应该在源文件中使用预编译命令:#include 或#include string.h函数名函数原型功能返回值memchrvoid memchr(void *buf, char ch, unsigned count);在buf的前count个字符里搜索字符ch首次出现的位置返回指
9、向buf中ch的第一次出现的位置指针。若没有找到ch,返回NULLmemcmpint memcmp(void *buf1, void *buf2, unsigned count);按字典顺序比较由buf1和buf2指向的数组的前count个字符buf1buf2,为正数memcpyvoid *memcpy(void *to, void *from, unsigned count);将from指向的数组中的前count个字符拷贝到to指向的数组中。From和to指向的数组不允许重叠返回指向to的指针memovevoid *memove(void *to, void *from, unsigned
10、count);将from指向的数组中的前count个字符拷贝到to指向的数组中。From和to指向的数组不允许重叠返回指向to的指针memsetvoid *memset(void *buf, char ch, unsigned count);将字符ch拷贝到buf指向的数组前count个字符中。返回bufstrcatchar *strcat(char *str1, char *str2);把字符str2接到str1后面,取消原来str1最后面的串结束符“0”返回str1strchrchar *strchr(char *str,int ch);找出str指向的字符串中第一次出现字符ch的位置返回
11、指向该位置的指针,如找不到,则应返回NULLstrcmpint *strcmp(char *str1, char *str2);比较字符串str1和str2若str1str2,为正数strcpychar *strcpy(char *str1, char *str2);把str2指向的字符串拷贝到str1中去返回str1strlenunsigned intstrlen(char *str);统计字符串str中字符的个数(不包括终止符“0”)返回字符个数strncatchar *strncat(char *str1, char *str2, unsigned count);把字符串str2指向的字
12、符串中最多count个字符连到串str1后面,并以NULL结尾返回str1strncmpint strncmp(char *str1,*str2, unsigned count);比较字符串str1和str2中至多前count个字符若str1str2,为正数strncpychar *strncpy(char *str1,*str2, unsigned count);把str2指向的字符串中最多前count个字符拷贝到串str1中去返回str1strnsetvoid *setnset(char *buf, char ch, unsigned count);将字符ch拷贝到buf指向的数组前cou
13、nt个字符中。返回bufstrsetvoid *setset(void *buf, char ch);将buf所指向的字符串中的全部字符都变为字符ch返回bufstrstrchar *strstr(char *str1,*str2);寻找str2指向的字符串在str1指向的字符串中首次出现的位置返回str2指向的字符串首次出向的地址。否则返回NULL4输入输出函数在使用输入输出函数时,应该在源文件中使用预编译命令:#include 或#include stdio.h函数名函数原型功能返回值clearerrvoid clearer(FILE *fp);清除文件指针错误指示器无closeint c
14、lose(int fp);关闭文件(非ANSI标准)关闭成功返回0,不成功返回-1creatint creat(char *filename, int mode);以mode所指定的方式建立文件(非ANSI标准)成功返回正数,否则返回-1eofint eof(int fp);判断fp所指的文件是否结束文件结束返回1,否则返回0fcloseint fclose(FILE *fp);关闭fp所指的文件,释放文件缓冲区关闭成功返回0,不成功返回非0feofint feof(FILE *fp); 检查文件是否结束文件结束返回非0,否则返回0ferrorint ferror(FILE *fp);测试fp
15、所指的文件是否有错误无错返回0,否则返回非0fflushint fflush(FILE *fp);将fp所指的文件的全部控制信息和数据存盘存盘正确返回0,否则返回非0fgetschar *fgets(char *buf, int n, FILE *fp);从fp所指的文件读取一个长度为(n-1)的字符串,存入起始地址为buf的空间返回地址buf。若遇文件结束或出错则返回EOFfgetcint fgetc(FILE *fp);从fp所指的文件中取得下一个字符返回所得到的字符。出错返回EOFfopenFILE *fopen(char *filename, char *mode);以mode指定的方
16、式打开名为filename的文件成功,则返回一个文件指针,否则返回0fprintfint fprintf(FILE *fp, char *format,args,);把args的值以format指定的格式输出到fp所指的文件中实际输出的字符数fputcint fputc(char ch, FILE *fp);将字符ch输出到fp所指的文件中成功则返回该字符,出错返回EOFfputsint fputs(char str, FILE *fp);将str指定的字符串输出到fp所指的文件中成功则返回0,出错返回EOFfreadint fread(char *pt, unsigned size, uns
17、igned n, FILE *fp);从fp所指定文件中读取长度为size的n个数据项,存到pt所指向的内存区返回所读的数据项个数,若文件结束或出错返回0fscanfint fscanf(FILE *fp, char *format,args,);从fp指定的文件中按给定的format格式将读入的数据送到args所指向的内存变量中(args是指针)以输入的数据个数fseekint fseek(FILE *fp, long offset, int base);将fp指定的文件的位置指针移到base所指出的位置为基准、以offset为位移量的位置返回当前位置,否则返回-1ftelllong fte
18、ll(FILE *fp);返回fp所指定的文件中的读写位置返回文件中的读写位置,否则返回0fwriteint fwrite(char *ptr, unsigned size, unsigned n, FILE *fp);把ptr所指向的n*size个字节输出到fp所指向的文件中写到fp文件中的数据项的个数getcint getc(FILE *fp);从fp所指向的文件中的读出下一个字符返回读出的字符,若文件出错或结束返回EOFgetcharint getchar();从标准输入设备中读取下一个字符返回字符,若文件出错或结束返回-1getschar *gets(char *str);从标准输入设
19、备中读取字符串存入str指向的数组成功返回str,否则返回NULLopenint open(char *filename, int mode);以mode指定的方式打开已存在的名为filename的文件(非ANSI标准)返回文件号(正数),如打开失败返回-1printfint printf(char *format,args,);在format指定的字符串的控制下,将输出列表args的指输出到标准设备输出字符的个数。若出错返回负数prtcint prtc(int ch, FILE *fp);把一个字符ch输出到fp所值的文件中输出字符ch,若出错返回EOFputcharint putchar(
20、char ch);把字符ch输出到fp标准输出设备返回换行符,若失败返回EOFputsint puts(char *str);把str指向的字符串输出到标准输出设备,将“0”转换为回车行返回换行符,若失败返回EOFputwint putw(int w, FILE *fp);将一个整数i(即一个字)写到fp所指的文件中(非ANSI标准)返回读出的字符,若文件出错或结束返回EOFreadint read(int fd, char *buf, unsigned count);从文件号fp所指定文件中读count个字节到由buf知识的缓冲区(非ANSI标准)返回真正读出的字节个数,如文件结束返回0,出
21、错返回-1removeint remove(char *fname);删除以fname为文件名的文件成功返回0,出错返回-1renameint remove(char *oname, char *nname);把oname所指的文件名改为由nname所指的文件名成功返回0,出错返回-1rewindvoid rewind(FILE *fp);将fp指定的文件指针置于文件头,并清除文件结束标志和错误标志无scanfint scanf(char *format,args,);从标准输入设备按format指示的格式字符串规定的格式,输入数据给args所指示的单元。args为指针读入并赋给args数据个
22、数。如文件结束返回EOF,若出错返回0writeint write(int fd, char *buf, unsigned count);丛buf指示的缓冲区输出count个字符到fd所指的文件中(非ANSI标准)返回实际写入的字节数,如出错返回-15动态存储分配函数在使用动态存储分配函数时,应该在源文件中使用预编译命令:#include 或#include stdlib.h函数名函数原型功能返回值calllocvoid *calloc(unsigned n, unsigned size);分配n个数据项的内存连续空间,每个数据项的大小为size分配内存单元的起始地址。如不成功,返回0free
23、 void free(void *p);释放p所指内存区无mallocvoid *malloc(unsigned size);分配size字节的内存区所分配的内存区地址,如内存不够,返回0realloc void *realloc(void *p, unsigned size);将p所指的以分配的内存区的大小改为size。size可以比原来分配的空间大或小返回指向该内存区的指针。若重新分配失败,返回NULL6其他函数有些函数由于不便归入某一类,所以单独列出。使用这些函数时,应该在源文件中使用预编译命令:#include 或#include stdlib.h函数名函数原型功能返回值absint
24、abs(int num);计算整数num的绝对值返回计算结果atofdouble atof(char *str);将str指向的字符串转换为一个double型的值返回双精度计算结果atoiint atoi(char *str);将str指向的字符串转换为一个int型的值返回转换结果atollong atol(char *str);将str指向的字符串转换为一个long型的值返回转换结果exitvoid exit(int status);中止程序运行。将status的值返回调用的过程无itoachar *itoa(int n, char *str, int radix);将整数n的值按照radi
25、x进制转换为等价的字符串,并将结果存入str指向的字符串中返回一个指向str的指针labslong labs(long num);计算long型整数num的绝对值返回计算结果ltoachar *ltoa(long n, char *str, int radix);将长整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串返回一个指向str的指针randint rand();产生0到RAND_MAX之间的伪随机数。RAND_MAX在头文件中定义返回一个伪随机(整)数randomint random(int num);产生0到num之间的随机数。返回一个随机(整)数randomizevoid randomize();初始化随机函数,使用时包括头文件time.h。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100