C語言常用的庫函數(shù)_第1頁
C語言常用的庫函數(shù)_第2頁
C語言常用的庫函數(shù)_第3頁
C語言常用的庫函數(shù)_第4頁
C語言常用的庫函數(shù)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、附錄C C語言常用的庫函數(shù)庫函數(shù)并不是C語言的一部分,它是由編譯系統(tǒng)根據(jù)一般用戶的需要編制并提供給用戶使用的一組程序。每一種C編譯系統(tǒng)都提供了一批庫函數(shù),不同的編譯系統(tǒng)所提供的庫函數(shù)的數(shù)目和函數(shù)名以及函數(shù)功能是不完全相同的。ANSI C標準提出了一批建議提供的標準庫函數(shù)。它包括了當前多數(shù)C編譯系統(tǒng)所提供的庫函數(shù),但也有一些是某些C編譯系統(tǒng)未曾實現(xiàn)的??紤]到通用性,本附錄列出ANSI C建議的常用庫函數(shù)。因為C庫函數(shù)的種類和數(shù)目很多,例如還有屏幕和圖形函數(shù)、時間日期函數(shù)、與系統(tǒng)相關(guān)的函數(shù)等,每一類函數(shù)又包括各種功能的函數(shù),限于篇幅,本附錄不能全部介紹,只從教學需要的角度列出最基本的。讀者在編寫C

2、程序時可根據(jù)需要,查閱相關(guān)系統(tǒng)的函數(shù)使用手冊。1數(shù)學函數(shù)使用數(shù)學函數(shù)時,應該在源文件中使用預編譯命令:#include 或#include math.h函數(shù)原型功能返回值acosdouble acos(double x);計算arccos x的值,其中-1=x=1計算結(jié)果asindouble asin(double x);計算arcsin x的值,其中-1=x=1計算結(jié)果atandouble atan(double x);計算arctan x的值計算結(jié)果atan2double atan2(double x, double y);計算arctan x/y的值計算結(jié)果cosdouble cos(d

3、ouble x);計算cos x的值,其中x的單位為弧度計算結(jié)果coshdouble cosh(double x);計算x的雙曲余弦cosh x的值計算結(jié)果expdouble exp(double x);求ex的值計算結(jié)果fabsdouble fabs(double x);求x的絕對值計算結(jié)果floordouble floor(double x);求出不大于x的最大整數(shù)該整數(shù)的雙精度實數(shù)fmoddouble fmod(double x, double y);求整除x/y的余數(shù)返回余數(shù)的雙精度實數(shù)frexpdouble frexp(double val, int *eptr);把雙精度數(shù)val分

4、解成數(shù)字部分(尾數(shù))和以2為底的指數(shù),即val=x*2n,n存放在eptr指向的變量中數(shù)字部分x0.5=x1logdouble log(double x);求lnx的值計算結(jié)果log10double log10(double x);求log10x的值計算結(jié)果modfdouble modf(double val, int *iptr);把雙精度數(shù)val分解成數(shù)字部分和小數(shù)部分,把整數(shù)部分存放在ptr指向的變量中val的小數(shù)部分powdouble pow(double x, double y);求xy的值計算結(jié)果sindouble sin(double x);求sin x的值,其中x的單位為弧度計

5、算結(jié)果sinhdouble sinh(double x);計算x的雙曲正弦函數(shù)sinh x的值計算結(jié)果sqrtdouble sqrt (double x);計算,其中x0計算結(jié)果tandouble tan(double x);計算tan x的值,其中x的單位為弧度計算結(jié)果tanhdouble tanh(double x);計算x的雙曲正切函數(shù)tanh x的值計算結(jié)果2字符函數(shù)在使用字符函數(shù)時,應該在源文件中使用預編譯命令:#include 或#include ctype.h函數(shù)名函數(shù)原型功能返回值isalnumint isalnum(int ch);檢查ch是否字母或數(shù)字是字母或數(shù)字返回1,否

6、則返回0isalphaint isalpha(int ch);檢查ch是否字母是字母返回1,否則返回0iscntrlint iscntrl(int ch);檢查ch是否控制字符(其ASCII碼在0和0xlF之間)是控制字符返回1,否則返回0isdigitint isdigit(int ch);檢查ch是否數(shù)字是數(shù)字返回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是否是標點字符(不包括空格)即除字母、數(shù)字和空格以外的所有可打印字符是標點返回1,否則返回0isspaceint isspace(int ch);檢查ch是否空格、跳格符(制表符)或換行符是,返回1,否則返回0isupperint isupper(int ch);檢查ch是否大寫字母(AZ)是大寫字母返回1,否則返回0isxdigitint isxdigit(int

8、ch);檢查ch是否一個16進制數(shù)字(即09,或A到F,af)是,返回1,否則返回0tolowerint tolower(int ch);將ch字符轉(zhuǎn)換為小寫字母返回ch對應的小寫字母toupperint toupper(int ch);將ch字符轉(zhuǎn)換為大寫字母返回ch對應的大寫字母3字符串函數(shù)使用字符串中函數(shù)時,應該在源文件中使用預編譯命令:#include 或#include string.h函數(shù)名函數(shù)原型功能返回值memchrvoid memchr(void *buf, char ch, unsigned count);在buf的前count個字符里搜索字符ch首次出現(xiàn)的位置返回指向bu

9、f中ch的第一次出現(xiàn)的位置指針。若沒有找到ch,返回NULLmemcmpint memcmp(void *buf1, void *buf2, unsigned count);按字典順序比較由buf1和buf2指向的數(shù)組的前count個字符buf1buf2,為正數(shù)memcpyvoid *memcpy(void *to, void *from, unsigned count);將from指向的數(shù)組中的前count個字符拷貝到to指向的數(shù)組中。From和to指向的數(shù)組不允許重疊返回指向to的指針memovevoid *memove(void *to, void *from, unsigned cou

10、nt);將from指向的數(shù)組中的前count個字符拷貝到to指向的數(shù)組中。From和to指向的數(shù)組不允許重疊返回指向to的指針memsetvoid *memset(void *buf, char ch, unsigned count);將字符ch拷貝到buf指向的數(shù)組前count個字符中。返回bufstrcatchar *strcat(char *str1, char *str2);把字符str2接到str1后面,取消原來str1最后面的串結(jié)束符“0”返回str1strchrchar *strchr(char *str,int ch);找出str指向的字符串中第一次出現(xiàn)字符ch的位置返回指向該

11、位置的指針,如找不到,則應返回NULLstrcmpint *strcmp(char *str1, char *str2);比較字符串str1和str2若str1str2,為正數(shù)strcpychar *strcpy(char *str1, char *str2);把str2指向的字符串拷貝到str1中去返回str1strlenunsigned intstrlen(char *str);統(tǒng)計字符串str中字符的個數(shù)(不包括終止符“0”)返回字符個數(shù)strncatchar *strncat(char *str1, char *str2, unsigned count);把字符串str2指向的字符串中

12、最多count個字符連到串str1后面,并以NULL結(jié)尾返回str1strncmpint strncmp(char *str1,*str2, unsigned count);比較字符串str1和str2中至多前count個字符若str1str2,為正數(shù)strncpychar *strncpy(char *str1,*str2, unsigned count);把str2指向的字符串中最多前count個字符拷貝到串str1中去返回str1strnsetvoid *setnset(char *buf, char ch, unsigned count);將字符ch拷貝到buf指向的數(shù)組前count個

13、字符中。返回bufstrsetvoid *setset(void *buf, char ch);將buf所指向的字符串中的全部字符都變?yōu)樽址鹀h返回bufstrstrchar *strstr(char *str1,*str2);尋找str2指向的字符串在str1指向的字符串中首次出現(xiàn)的位置返回str2指向的字符串首次出向的地址。否則返回NULL4輸入輸出函數(shù)在使用輸入輸出函數(shù)時,應該在源文件中使用預編譯命令:#include 或#include stdio.h函數(shù)名函數(shù)原型功能返回值clearerrvoid clearer(FILE *fp);清除文件指針錯誤指示器無closeint clos

14、e(int fp);關(guān)閉文件(非ANSI標準)關(guān)閉成功返回0,不成功返回-1creatint creat(char *filename, int mode);以mode所指定的方式建立文件(非ANSI標準)成功返回正數(shù),否則返回-1eofint eof(int fp);判斷fp所指的文件是否結(jié)束文件結(jié)束返回1,否則返回0fcloseint fclose(FILE *fp);關(guān)閉fp所指的文件,釋放文件緩沖區(qū)關(guān)閉成功返回0,不成功返回非0feofint feof(FILE *fp); 檢查文件是否結(jié)束文件結(jié)束返回非0,否則返回0ferrorint ferror(FILE *fp);測試fp所指的

15、文件是否有錯誤無錯返回0,否則返回非0fflushint fflush(FILE *fp);將fp所指的文件的全部控制信息和數(shù)據(jù)存盤存盤正確返回0,否則返回非0fgetschar *fgets(char *buf, int n, FILE *fp);從fp所指的文件讀取一個長度為(n-1)的字符串,存入起始地址為buf的空間返回地址buf。若遇文件結(jié)束或出錯則返回EOFfgetcint fgetc(FILE *fp);從fp所指的文件中取得下一個字符返回所得到的字符。出錯返回EOFfopenFILE *fopen(char *filename, char *mode);以mode指定的方式打開

16、名為filename的文件成功,則返回一個文件指針,否則返回0fprintfint fprintf(FILE *fp, char *format,args,);把args的值以format指定的格式輸出到fp所指的文件中實際輸出的字符數(shù)fputcint fputc(char ch, FILE *fp);將字符ch輸出到fp所指的文件中成功則返回該字符,出錯返回EOFfputsint fputs(char str, FILE *fp);將str指定的字符串輸出到fp所指的文件中成功則返回0,出錯返回EOFfreadint fread(char *pt, unsigned size, unsign

17、ed n, FILE *fp);從fp所指定文件中讀取長度為size的n個數(shù)據(jù)項,存到pt所指向的內(nèi)存區(qū)返回所讀的數(shù)據(jù)項個數(shù),若文件結(jié)束或出錯返回0fscanfint fscanf(FILE *fp, char *format,args,);從fp指定的文件中按給定的format格式將讀入的數(shù)據(jù)送到args所指向的內(nèi)存變量中(args是指針)以輸入的數(shù)據(jù)個數(shù)fseekint fseek(FILE *fp, long offset, int base);將fp指定的文件的位置指針移到base所指出的位置為基準、以offset為位移量的位置返回當前位置,否則返回-1ftelllong ftell(

18、FILE *fp);返回fp所指定的文件中的讀寫位置返回文件中的讀寫位置,否則返回0fwriteint fwrite(char *ptr, unsigned size, unsigned n, FILE *fp);把ptr所指向的n*size個字節(jié)輸出到fp所指向的文件中寫到fp文件中的數(shù)據(jù)項的個數(shù)getcint getc(FILE *fp);從fp所指向的文件中的讀出下一個字符返回讀出的字符,若文件出錯或結(jié)束返回EOFgetcharint getchar();從標準輸入設備中讀取下一個字符返回字符,若文件出錯或結(jié)束返回-1getschar *gets(char *str);從標準輸入設備中讀

19、取字符串存入str指向的數(shù)組成功返回str,否則返回NULLopenint open(char *filename, int mode);以mode指定的方式打開已存在的名為filename的文件(非ANSI標準)返回文件號(正數(shù)),如打開失敗返回-1printfint printf(char *format,args,);在format指定的字符串的控制下,將輸出列表args的指輸出到標準設備輸出字符的個數(shù)。若出錯返回負數(shù)prtcint prtc(int ch, FILE *fp);把一個字符ch輸出到fp所值的文件中輸出字符ch,若出錯返回EOFputcharint putchar(cha

20、r ch);把字符ch輸出到fp標準輸出設備返回換行符,若失敗返回EOFputsint puts(char *str);把str指向的字符串輸出到標準輸出設備,將“0”轉(zhuǎn)換為回車行返回換行符,若失敗返回EOFputwint putw(int w, FILE *fp);將一個整數(shù)i(即一個字)寫到fp所指的文件中(非ANSI標準)返回讀出的字符,若文件出錯或結(jié)束返回EOFreadint read(int fd, char *buf, unsigned count);從文件號fp所指定文件中讀count個字節(jié)到由buf知識的緩沖區(qū)(非ANSI標準)返回真正讀出的字節(jié)個數(shù),如文件結(jié)束返回0,出錯返回

21、-1removeint remove(char *fname);刪除以fname為文件名的文件成功返回0,出錯返回-1renameint remove(char *oname, char *nname);把oname所指的文件名改為由nname所指的文件名成功返回0,出錯返回-1rewindvoid rewind(FILE *fp);將fp指定的文件指針置于文件頭,并清除文件結(jié)束標志和錯誤標志無scanfint scanf(char *format,args,);從標準輸入設備按format指示的格式字符串規(guī)定的格式,輸入數(shù)據(jù)給args所指示的單元。args為指針讀入并賦給args數(shù)據(jù)個數(shù)。如

22、文件結(jié)束返回EOF,若出錯返回0writeint write(int fd, char *buf, unsigned count);叢buf指示的緩沖區(qū)輸出count個字符到fd所指的文件中(非ANSI標準)返回實際寫入的字節(jié)數(shù),如出錯返回-15動態(tài)存儲分配函數(shù)在使用動態(tài)存儲分配函數(shù)時,應該在源文件中使用預編譯命令:#include 或#include stdlib.h函數(shù)名函數(shù)原型功能返回值calllocvoid *calloc(unsigned n, unsigned size);分配n個數(shù)據(jù)項的內(nèi)存連續(xù)空間,每個數(shù)據(jù)項的大小為size分配內(nèi)存單元的起始地址。如不成功,返回0free void free(void *p);釋放p所指內(nèi)存區(qū)無mallocvoid *malloc(unsigned size);分配size字節(jié)的內(nèi)存區(qū)所分配的內(nèi)存區(qū)地址,如內(nèi)存不夠,返回0realloc void *realloc(void *p, unsigned size);將p所指的以分配的內(nèi)存區(qū)的大小改為size。size可以比原來分配的空間大或小返回指向該內(nèi)存區(qū)的指針。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論