1. 程式人生 > >ANSI C(C89)標準庫函式手冊

ANSI C(C89)標準庫函式手冊

前言

ANSI C(C89)標準庫函式共有15個頭檔案。這15個頭檔案分別為:

1.<assert.h>           2.<ctype.h>         3.<errno.h>

4.<float.h>            5.<limits.h>         6.<locale.h>

7.<math.h>            8.<setjmp.h>        9.<signal.h>

10.<stdarg.h>        11.<stddef.h>       12.<stdio.h>

13.<stdlib.h>          14.<string.h>              15.<time.h>

這15個頭檔案共包含了137個庫函式。其中ctype.h包含13個函式,math.h包含22個函式,signal.h包含2個函式,stdio.h包含41個函式,stdlib.h包含了28個函式,string.h包含了22個函式,time.h包含了9個函式。

1995年,Normative Addendum 1(NA1)批准了3個頭檔案(iso646.h, wchar.h和wctype.h)增加到C標準函式庫中。C99標準增加了6個頭檔案(complex.h, fenv.h, inttypes.h, stdbool.h, stdint.h和tgmath.h)。C11標準中又新增了5個頭檔案(stdalign.h,stdatomic.h, stdnoreturn.h, threads.h和uchar.h)。至此,C標準函式庫共29個頭檔案。

本文僅對C89中的標準庫函式做解釋。

一.ctype.h<字元類測試>

1.intisalnum(int c); 判斷是否是字母或數字。

2.intisalpha(int c); 判斷是否是字母。

3.intiscntrl(int c); 判斷是否是控制字元。

4.intisdigit(int c); 判斷是否是數字。

5.intisgraph(int c); 判斷是否是可顯示字元。

6.intislower(int c); 判斷是否是小寫字母。

7.intisupper(int c); 判斷是否是大寫字母。

8.intisprint(int c); 判斷是否是可顯示字元。

9.intispunct(int c); 判斷是否是標點字元。

10.int isspace(intc); 判斷是否是空白字元

11.intisxdigit(int c); 判斷字元是否為16進位制。

12.inttolower(int c); 轉換為小寫字母。

13.inttoupper(int c); 轉換為大寫字母。

二.math.h<數學函式>

1.doublesin(double x); 正弦

2.doublecos(double x); 餘弦

3.doubletan(double x); 正切

4.doubleasin(double x);結果介於[-PI/2,PI/2]

5.doubleacos(double x); 結果介於[0, PI]

6doubleatan(double x);

7.doubleatan2(double y,double);

8.doublesinh(double x); 計算雙曲正弦

9.doublecosh(double x); 計算雙曲餘弦

10.doubletanh(double x); 計算雙曲正切

11.doubleexp(double x); 求取自然數e的冪

12.doublesqrt(double x); 開平方

13.doublelog(double x); 以e為底的對數

14.doublelog10(double x); 以10為底的對數

15.doublepow(double x, double y);

16.floatpowf(float x, float y);

17.doubleceil(double); 取上整

18.doublefloor(double); 取下整

19.doublefrexp(double f, int *p);

20.doubleldexp(double x, int p);

21.doublemodf(double, double*);

22.doublefmod(double, double);

三.signal.h<訊號處理>

       1.signal();

       2.raise();

四.stdio.h<標準輸入輸出>

1.clearerr(); 復位錯誤標誌

2.fclose(); 關閉一個流。

3.feof(); 檢測檔案結束符

4.ferror(); 檢查流是否有錯誤

5.fflush();更新緩衝區

6.fgetpos(); 移動檔案流的讀寫位置

7.fopen();開啟檔案

8.fread(); 從檔案流讀取資料

9.freopen(); 開啟檔案

10.fseek(); 移動檔案流的讀寫位置

11.fsetpos();定位流上的檔案指標

12.ftell(); 取得檔案流的讀取位置

13.fwrite(); 將資料寫至檔案流

14.remove(); 刪除檔案

15.rename(); 更改檔名稱或位置

16.rewind(); 重設讀取目錄的位置為開頭位置

17.setbuf(); 把緩衝區與流相聯

18.setvbuf(); 把緩衝區與流相關

19.tmpfile(); 以wb+形式建立一個臨時二進位制檔案

20.tmpnam();  產生一個唯一的檔名

21.fprintf(); 格式化輸出資料至檔案

22.fscanf(); 格式化字串輸入

23.printf(); 格式化輸出資料

24.scanf(); 格式輸入函式

25.sprintf(); 格式化字串複製

26.sscanf(); 格式化字串輸入

27.vfprintf(); 格式化輸出資料至檔案

28.vprintf(); 格式化輸出資料

29.vsprintf(); 格式化字串複製

30.fgetc(); 由檔案中讀取一個字元

31.fgets(); 檔案中讀取一字串

32.fputc(); 將一指定字元寫入檔案流中

33.fputs(); 將一指定的字串寫入檔案內

34.getc(); 由檔案中讀取一個字元

35.getchar(); 由標準輸入裝置內讀進一字元

36.gets(); 由標準輸入裝置內讀進一字串

37.putc(); 將一指定字元寫入檔案中

38.putchar(); 將指定的字元寫到標準輸出裝置

39.puts(); 送一字串到流stdout中

40.ungetc();  將指定字元寫回檔案流中

41.perror(); 打印出錯誤原因資訊字串

五.stdlib.h<實用函式>

       字串函式

1.atof(); 將字串轉換成浮點型數

2.atoi(); 將字串轉換成整型數

3.atol(); 將字串轉換成長整型數

4.strtod(); 將字串轉換成浮點數

5.strtol(); 將字串轉換成長整型數

6.strtoul(); 將字串轉換成無符號長整型數

       記憶體控制函式

7.calloc(); 配置記憶體空間

8.free(); 釋放原先配置的記憶體

9.malloc(); 配置記憶體空間

10.realloc(); 重新分配主存

       環境函式

11.abort(); 異常終止一個程序

12.atexit();設定程式正常結束前呼叫的函式

13.exit(); 正常結束程序

14.getenv(); 取得環境變數內容

15.system(); 執行shell 命令

       搜尋和排序函式

16.bsearch(); 二元搜尋

17.qsort(); 利用快速排序法排列陣列

       數學函式

18.abs(); 計算整型數的絕對值

19.div(); 將兩個整數相除, 返回商和餘數

20.labs(); 取長整型絕對值

21.ldiv();兩個長整型數相除, 返回商和餘數

22.rand(); 隨機數發生器

23.srand(); 設定隨機數種子

       多位元組函式

24.mblen(); 根據locale的設定確定字元的位元組數

25.mbstowcs(); 把多位元組字串轉換為寬字串

26.mbtowc(); 把多位元組字元轉換為寬字元

27.wcstombs(); 把寬字串轉換為多位元組字串

28.wctomb(); 把寬字元轉換為多位元組字元

六.string.h<字串處理函式>

1.memchr();在某一記憶體範圍中查詢一特定字元

2.memcmp(); 比較記憶體內容

3.memcpy(); 拷貝記憶體內容

4.memmove(); 拷貝記憶體內容

5.memset(); 將一段記憶體空間填入某值

6.strcat(); 連線兩字串

7.strncat(); 連線兩字串

8.strchr(); 查詢字串中第一個出現的指定字元

9.strcmp(); 比較字串

10.strncmp();比較2個字串的前N個字元

11.strcoll(); 採用目前區域的字元排列比較字串

12.strcpy(); 拷貝字串

13.strncpy(); 拷貝字串

14.strcspn(); 返回字元連續不含指定字元的字元數

15.strerror(); 返回錯誤原因的描述字串

16.strlen(); 計算字串長度

17.strpbrk(); 查詢字串中第一個出現的指定字元

18.strrchr(); 查詢字串中最後出現的指定字元

19.strspn();返回字串連續不含指定字元的字元數

20.strstr(); 在一字串中查詢指定的字串

21.strtok(); 分割字串

22.strxfrm(); 轉換字串

七.time.h<日期與時間>

1.asctime(); 將時間和日期以字串格式表示

2.clock(); 確定處理器時間

3.ctime(); 把日期和時間轉換為字串

4.difftime(); 計算兩個時刻之間的時間差

5.gmtime(); 把日期和時間轉換為(GMT)時間

6.localtime();取得當地目前時間和日期

7.mktime();將時間結構資料轉換成經過的秒數

8.strftime(); 將時間格式化

9.time(); 取得目前的時間