網站聲明

本網站包含了各式各樣的資源,如果有侵占到您的著作權,請與本人通知,本人會立即改進。本站所有發表僅屬研究討論性質,如果有任何後果請自行負責。

2015-06-10

C語言標準函式庫

分類:
1. 標準輸出輸入函數<stdio.h>
2. 字元檢查函數<ctype.h>
3. 字串函數<string.h>
4. 數學函數<math.h>
5. 日期/時間函數<time.h>
6. 工具函數<stdlib.h>

1. 標準輸出輸入函數<stdio.h>
l   FILE* fopen(const char* filename, const char* mode):使用 mode 模式開啟參數 filename 的檔案,傳回檔案串流,失敗傳回 NULL
l   FILE* freopen(const char* filename, const char* mode, FILE* stream):關閉檔案後重新開啟檔案。
l   intfflush(FILE* stream):清除緩衝區的內容,成功傳回 0,失敗傳回EOF
l   intfclose(FILE* stream):關閉檔案。
l   int remove(const char* filename):刪除參數的檔案,失敗傳回非零值。
l   int rename(const char* oldname, const char* newname):將檔案名稱oldname改為newname,失敗傳回非零值。
l   FILE* tmpfile():建立"wb+"模式的暫存檔案,當結束程式後就會關閉且刪除此檔案。
l   char* tmpname(char s[L_tmpnam]):指定暫存檔案的名稱為sintsetvbuf(FILE* stream, char* buf, int mode, size_t size):指定串流暫存區尺寸 size,使用 mode參數值_IOFBF 為完整暫存區、_IOLBF 是線性暫存區或_IONBF 沒有暫存區。
l   void setbuf(FILE* stream, char* buf):指定串流的暫存區為參數buf
l   intfprintf(FILE* stream, const char* format, ...):將格式化字串寫入檔案串流。
l   intprintf(const char* format, ...):在標準輸出顯示格式化字串。
l   intsprintf(char* s, const char* format, ...):將格式化字串輸出到字串s
l   intfscanf(FILE* stream, const char* format, ...):從檔案串流讀取指定格式的資料。
l   intscanf(const char* format, ...):從標準輸入讀取指定格式的資料。
l   intsscanf(char* s, const char* format, ...):從字串 s 讀取指定格式的資料。
l   intfgetc(FILE* stream):從檔案串流讀取一個字元。
l   char* fgets(char* s, int n, FILE* stream):從檔案串流讀取一個字串。
l   intfputc(int c, FILE* stream):寫入一個字元到檔案。
l   char* fputs(const char* s, FILE* stream):寫入一個字串到檔案。
l   intgetc(FILE* stream):從檔案串流讀取一個字元。
l   intgetchar(void):從標準輸入讀取一個字元。
l   char* gets(char* s):從標準輸入讀取一個字串。
l   intputc(int c, FILE* stream):寫入一個字元到檔案。
l   intputchar(int c):在標準輸出顯示一個字元。
l   int puts(const char* s):在標準輸出顯示一個字串。
l   intungetc(int c, FILE* stream):將一個字元放回檔案串流。
l   size_tfread(void* ptr, size_t size, size_tnobj, FILE* stream):從檔案讀取指定大小的資料。
l   size_tfwrite(const void* ptr, size_t size, size_tnobj, FILE* stream):將指定大小的資料寫入檔案。
l   intfseek(FILE* stream, long offset, int origin):移動檔案指標到 offset位移量,其方向是 origin 參數值 SEEK_SET 的檔案開頭、SEEK_CUR 是目前位置或SEEK_END 檔尾。
l   long ftell(FILE* stream):目前檔案指標的位置。
l   void rewind(FILE* stream):重設檔案指標到檔頭。
l   intfeof(FILE* stream):是否到達檔尾。
l   intferror(FILE* stream):是否檔案串流產生錯誤。

2. 字元檢查函數<ctype.h>
l   intisalnum(int c)isalpha(c)isdigit(c)的字元。
l   intisalpha(int c)isupper(c)islower(c)的字元。
l   intiscntrl(int c):是否是 ASCII 控制字元。
l   intisdigit(int c):是否是數字。
l   intisgraph(int c):是否是顯示字元,不含空白字元。
l   intislower(int c):是否是小寫字元。
l   intisprint(int c):是否是顯示字元 0x20 (' ') 0x7E ('~')
l   intispunct(int c):是否是顯示字元,不包含空白、字母、數字字元。
l   intisspace(int c):是否是空白字元。
l   intisupper(int c):是否是大寫字元。
l   intisxdigit(int c):是否是十六進位字元。
l   inttolower(int c):轉換成小寫字元。
l   inttoupper(int c):轉換成大寫字元。

3. 字串函數<string.h>
l   char* strcpy(char* s, const char* ct):將字串ct複製到字串 s
l   char* strncpy(char* s, const char* ct, size_t n):將字串ct n 個字元複製到字串 s
l   char* strcat(char* s, const char* ct):連結字串ct到字串 s 之後。
l   char* strncat(char* s, const char* ct, size_t n):連結字串ct n 個字元到字串 s
l   intstrcmp(const char* cs, const char* ct):比較字串csct
l   intstrncmp(const char* cs, const char* ct, size_t n):比較字串csct的前 n 個字元。
l   char* strchr(const char* cs, int c):傳回字元 c第一次出現在字串cs位置的指標。
l   char* strrchr(const char* cs, int c):傳回字元 c 第後一次出現在字串cs位置的指標。
l   char* strpbrk(const char* cs, const char* ct):傳回字串ct任何字元在字串cs第一次出現的位置指標。
l   char* strstr(const char* cs, const char* ct):傳回字串ct在字串cs第一次出現的位置指標。
l   size_tstrlen(const char* cs):傳回字串cs的長度。
l   char* strerror(int n):傳回指定錯誤代碼的說明文字內容。
l   char* strtok(char* s, const char* t):以字串 t 的任何字元為分隔字元,找尋字串 s 中下一個 token記號。
l   void* memcpy(void* s, const void* ct, size_t n):從位置ct複製 n 個字元到位置 s,傳回 s
l   void* memmove(void* s, const void* ct, size_t n):從位置ct搬移 n 個字元到位置 s,傳回 s
l   intmemcmp(const void* cs, const void* ct, size_t n):比較位置ct和位置cs的前 n 個字元。
l   void* memchr(const void* cs, int c, size_t n):傳回cs位置開始前 n 個字元第一次出現字元 c 的位置指標。
l   void* memset(void* s, int c, size_t n):取代cs位置開始前 n 個字元成為字元 c,傳回位置指標 s

4. 數學函數<math.h>
l   double exp(double x):自然數的指數e^x
l   double log(double x):自然對數logx
l   double log10(double x):十為底的對數 log10x
l   double pow(double x, double y):傳回參數 x 為底,參數 y 的次方值x^y
l   double sqrt(double x):參數 x 的平方根。
l   double ceil(double x):傳回大於或等於參數 x 的最小 double 整數。
l   double floor(double x):傳回小於或等於參數 x 的最大 double 整數。
l   double fabs(double x):傳回參數 x 的絕對值。
l   hypot(double x, double y):傳回√(x^2+y^2)公式的值
l   double ldexp(double x, int n)x 乘以 2 n 次方是 x*2^n
l   double frexp(double x, int* exp):將參數 x 的浮點數分解成尾數和指標,x = m*2^exp,傳回 m值的尾數,將指數存入參數exp
l   double modf(double x, double* ip):將浮點數 x 分解成整數和小數部分,傳回小數部分,將整數部分存入參數ip
l   double fmod(double x, double y):如果 y 為非零值,傳回浮點數 x/y的餘數。
l   double sin(double x):正弦函數。
l   double cos(double x):餘弦函數。
l   double tan(double x):正切函數。
l   double asin(double x):反正弦函數。
l   double acos(double x):反餘弦函數。
l   double atan(double x):反正切函數。
l   double atan2(double y, double x):參數 y/x 的反正切函數值。
l   double sinh(double x)hyperbolic 正弦函數,sinh(x)=(e^x-e^(-x))/2
l   double cosh(double x) hyperbolic 餘弦函數,cosh(x)=(e^x+e^(-x))/2
l   double tanh(double x) hyperbolic 正切函數,tanh(x)=(e^x-e^(-x))/(e^2+e^(-x))

5. 日期/時間函數<time.h>
l   clock_t clock(void):傳回程式開始執行後所使用的 CPU 時間,以ticks 為單位,除以常數 CLK_TCK就是秒數。
l   time_t time(time_t* tp):傳回目前的曆法時間(Calendar Time ),也會指定給參數的tp指標,如為無效時間,傳回-1
l   double difftime(time_t time2, time_t time1):傳回參數 time2 time1的時間差,即 time2-time1
l   time_tmktime(struct tm* tp):將參數*tp的當地時間改為曆法時間,如果不能轉換傳回-1
l   char* asctime(conststruct tm* tp):傳回參數 tm 結構指標轉換成日期/時間格式的字串,字串最後有新行字元\n
l   char* ctime(consttime_t* tp):傳回參數time_t指標轉換成當地日期/時間的字串,字串最後有新行字元\n
l   struct tm* gmtime(consttime_t* tp):傳回將參數的time_t指標轉換成UTCCoordinated Universal Time )日期/時間的 tm 結構指標。
l   struct tm* localtime(consttime_t* tp):傳回將參數的time_t指標轉換成當地日期/時間的 tm結構指標。
l   ®size_tstrftime(char* s, size_tsmax, const char* fmt, conststruct tm* tp):將參數tp的日期/時間以格式化字串fmt輸出到字串 ss 最多儲存smax個字元。

6. 工具函數<stdlib.h>
l   int abs(int n)long labs(long n):傳回整數 n 的絕對值。
l   double atof(const char* s):將參數字串 s 轉換成浮點數,如果字串不能轉換傳回 0.0
l   intatoi(const char* s):將參數字串 s 轉換成整數,如果字串不能轉換傳回 0
l   long atol(const char* s):將參數字串 s 轉換成長整數,如果字串不能轉換傳回 0
l   double strtod(const char* s, char** endp):函數忽略字串 s 前的空白字元,將數字部分轉換成浮點數,如果尚有未轉換的部分字串,則設成參數endp指標。
l   long strtol(const char* s, char** endp, int base):函數忽略字串 s 前的空白字元,將數字部分轉換成長整數,如果尚有未轉換的部分字串,則設成參數endp指標。
l   unsigned long strtoul(const char* s, char** endp, int base):如同strtol函數,其傳回值是無符號長整數。
l   void* calloc(size_tnobj, size_t size):傳回一塊參數nobj陣列大小的記憶體指標,nobj元素大小為 size 初值為 0,錯誤傳回 NULL
l   void* malloc(size_t size):傳回大小 size 記憶體指標,沒有指定初值,錯誤傳回 NULL
l   void* realloc(void* p, size_t size):將指標 p 的記憶體改為size 大小,不會更改原記憶體的值,多配置部分初值為 0,錯誤傳回 NULL
l   void free(void* p):釋放參數 p 指標的記憶體空間。
l   void abort():強迫程式以不正常方式結束,如同呼叫 raise(SIGABRT)函數。
l   void exit(int status):程式以正常方式結束,傳回系統環境狀態值,0表示正常結束。
l   int system(const char* s):將字串 s 的指令傳給環境來執行,也就是執行 MS-DOS的指令。
l   char* getenv(const char* name):傳回參數 name 的環境字串,如果沒有傳回 NULL
l   void* bsearch(const void* key, const void* base, size_t n, size_t size, int(*cmp)(const void* keyval, const void* datum)):陣列基礎的二元搜尋函數,陣列是參數 base,鍵值是參數 keyn 是陣列大小,size 是每個元素的大小,最後的參數是指向函數的指標,這是比較元素大小的函數,找到傳回該元素指標,沒有找到傳回 NULL
l   void qsort(void* base, size_t n, size_t size, int (*cmp)(const void*, constvoid*)):陣列基礎的快速排序法函數,陣列是參數 basen 是陣列大小,size 是每個元素的大小,最後的參數是指向函數的指標,這是比較元素大小的函數。
l   int rand(void):傳回亂數的整數值,其值的範圍是 0 RAND_MAX常數,其值為 0x7FFF
l   void srand(unsigned int seed):指定亂數的種子數,參數是無符號整數,如果沒有指定,預設的種子數為1


資料來源:網路

沒有留言:

張貼留言

歡迎留言,較舊文章需要留言審核看不到自己的留言是正常的。
若長時間無回應請使用以下聯絡方式:
填寫表單:https://forms.gle/hxxX9n4tATcFnhnk8
寄信到:happyplayblogs@gmail.com