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(); 取得目前的時間