<stdio.h>
簡介
stdio .h 頭檔案定義了三個變數型別、一些宏和各種函式來執行輸入和輸出,
庫變數
下面是頭檔案 stdio.h 中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 | size_t 這是無符號整數型別,它是 sizeof 關鍵字的結果, |
| 2 | FILE 這是一個適合存盤檔案流資訊的物件型別, |
| 3 | fpos_t 這是一個適合存盤檔案中任何位置的物件型別, |
庫宏
下面是頭檔案 stdio.h 中定義的宏:
| 序號 | 宏 & 描述 |
|---|---|
| 1 | NULL 這個宏是一個空指標常量的值, |
| 2 | _IOFBF、_IOLBF 和 _IONBF 這些宏擴展了帶有特定值的整型常量運算式,并適用于 setvbuf 函式的第三個引數, |
| 3 | BUFSIZ 這個宏是一個整數,該整數代表了 setbuf 函式使用的緩沖區大小, |
| 4 | EOF 這個宏是一個表示已經到達檔案結束的負整數, |
| 5 | FOPEN_MAX 這個宏是一個整數,該整數代表了系統可以同時打開的檔案數量, |
| 6 | FILENAME_MAX 這個宏是一個整數,該整數代表了字符陣列可以存盤的檔案名的最大長度,如果實作沒有任何限制,則該值應為推薦的最大值, |
| 7 | L_tmpnam 這個宏是一個整數,該整數代表了字符陣列可以存盤的由 tmpnam 函式創建的臨時檔案名的最大長度, |
| 8 | SEEK_CUR、SEEK_END 和 SEEK_SET 這些宏是在 fseek 函式中使用,用于在一個檔案中定位不同的位置, |
| 9 | TMP_MAX 這個宏是 tmpnam 函式可生成的獨特檔案名的最大數量, |
| 10 | stderr、stdin 和 stdout 這些宏是指向 FILE 型別的指標,分別對應于標準錯誤、標準輸入和標準輸出流, |
庫函式
下面是頭檔案 stdio.h 中定義的函式:
為了更好地理解函式,請按照下面的序列學習這些函式,
因為第一個函式中創建的檔案會在后續的函式中使用到,
| 序號 | 函式 & 描述 |
|---|---|
| 1 | int fclose(FILE *stream) 關閉流 stream,重繪所有的緩沖區, |
| 2 | void clearerr(FILE *stream) 清除給定流 stream 的檔案結束和錯誤識別符號, |
| 3 | int feof(FILE *stream) 測驗給定流 stream 的檔案結束識別符號, |
| 4 | int ferror(FILE *stream) 測驗給定流 stream 的錯誤識別符號, |
| 5 | int fflush(FILE *stream) 重繪流 stream 的輸出緩沖區, |
| 6 | int fgetpos(FILE *stream, fpos_t *pos) 獲取流 stream 的當前檔案位置,并把它寫入到 pos, |
| 7 | FILE *fopen(const char *filename, const char *mode) 使用給定的模式 mode 打開 filename 所指向的檔案, |
| 8 | size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 從給定流 stream 讀取資料到 ptr 所指向的陣列中, |
| 9 | FILE *freopen(const char *filename, const char *mode, FILE *stream) 把一個新的檔案名 filename 與給定的打開的流 stream 關聯,同時關閉流中的舊檔案, |
| 10 | int fseek(FILE *stream, long int offset, int whence) 設定流 stream 的檔案位置為給定的偏移 offset,引數 offset 意味著從給定的 whence 位置查找的位元組數, |
| 11 | int fsetpos(FILE *stream, const fpos_t *pos) 設定給定流 stream 的檔案位置為給定的位置,引數 pos 是由函式 fgetpos 給定的位置, |
| 12 | long int ftell(FILE *stream) 回傳給定流 stream 的當前檔案位置, |
| 13 | size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 把 ptr 所指向的陣列中的資料寫入到給定流 stream 中, |
| 14 | int remove(const char *filename) 洗掉給定的檔案名 filename,以便它不再被訪問, |
| 15 | int rename(const char *old_filename, const char *new_filename) 把 old_filename 所指向的檔案名改為 new_filename, |
| 16 | void rewind(FILE *stream) 設定檔案位置為給定流 stream 的檔案的開頭, |
| 17 | void setbuf(FILE *stream, char *buffer) 定義流 stream 應如何緩沖, |
| 18 | int setvbuf(FILE *stream, char *buffer, int mode, size_t size) 另一個定義流 stream 應如何緩沖的函式, |
| 19 | FILE *tmpfile(void) 以二進制更新模式(wb+)創建臨時檔案, |
| 20 | char *tmpnam(char *str) 生成并回傳一個有效的臨時檔案名,該檔案名之前是不存在的, |
| 21 | int fprintf(FILE *stream, const char *format, ...) 發送格式化輸出到流 stream 中, |
| 22 | int printf(const char *format, ...) 發送格式化輸出到標準輸出 stdout, |
| 23 | int sprintf(char *str, const char *format, ...) 發送格式化輸出到字串, |
| 24 | int vfprintf(FILE *stream, const char *format, va_list arg) 使用引數串列發送格式化輸出到流 stream 中, |
| 25 | int vprintf(const char *format, va_list arg) 使用引數串列發送格式化輸出到標準輸出 stdout, |
| 26 | int vsprintf(char *str, const char *format, va_list arg) 使用引數串列發送格式化輸出到字串, |
| 27 | int fscanf(FILE *stream, const char *format, ...) 從流 stream 讀取格式化輸入, |
| 28 | int scanf(const char *format, ...) 從標準輸入 stdin 讀取格式化輸入, |
| 29 | int sscanf(const char *str, const char *format, ...) 從字串讀取格式化輸入, |
| 30 | int fgetc(FILE *stream) 從指定的流 stream 獲取下一個字符(一個無符號字符),并把位置識別符號往前移動, |
| 31 | char *fgets(char *str, int n, FILE *stream) 從指定的流 stream 讀取一行,并把它存盤在 str 所指向的字串內,當讀取 (n-1) 個字符時,或者讀取到換行符時,或者到達檔案末尾時,它會停止,具體視情況而定, |
| 32 | int fputc(int char, FILE *stream) 把引數 char 指定的字符(一個無符號字符)寫入到指定的流 stream 中,并把位置識別符號往前移動, |
| 33 | int fputs(const char *str, FILE *stream) 把字串寫入到指定的流 stream 中,但不包括空字符, |
| 34 | int getc(FILE *stream) 從指定的流 stream 獲取下一個字符(一個無符號字符),并把位置識別符號往前移動, |
| 35 | int getchar(void) 從標準輸入 stdin 獲取一個字符(一個無符號字符), |
| 36 | char *gets(char *str) 從標準輸入 stdin 讀取一行,并把它存盤在 str 所指向的字串中,當讀取到換行符時,或者到達檔案末尾時,它會停止,具體視情況而定, |
| 37 | int putc(int char, FILE *stream) 把引數 char 指定的字符(一個無符號字符)寫入到指定的流 stream 中,并把位置識別符號往前移動, |
| 38 | int putchar(int char) 把引數 char 指定的字符(一個無符號字符)寫入到標準輸出 stdout 中, |
| 39 | int puts(const char *str) 把一個字串寫入到標準輸出 stdout,直到空字符,但不包括空字符,換行符會被追加到輸出中, |
| 40 | int ungetc(int char, FILE *stream) 把字符 char(一個無符號字符)推入到指定的流 stream 中,以便它是下一個被讀取到的字符, |
| 41 | void perror(const char *str) 把一個描述性錯誤訊息輸出到標準錯誤 stderr,首先輸出字串 str,后跟一個冒號,然后是一個空格, |
| 42 | int snprintf(char *str, size_t size, const char *format, ...) 格式字串到 str 中, |
<stdlib.h>
簡介
stdlib .h 頭檔案定義了四個變數型別、一些宏和各種通用工具函式,
庫變數
下面是頭檔案 stdlib.h 中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 | size_t 這是無符號整數型別,它是 sizeof 關鍵字的結果, |
| 2 | wchar_t 這是一個寬字符常量大小的整數型別, |
| 3 | div_t 這是 div 函式回傳的結構, |
| 4 | ldiv_t 這是 ldiv 函式回傳的結構, |
庫宏
下面是頭檔案 stdlib.h 中定義的宏:
| 序號 | 宏 & 描述 |
|---|---|
| 1 | NULL 這個宏是一個空指標常量的值, |
| 2 | EXIT_FAILURE 這是 exit 函式失敗時要回傳的值, |
| 3 | EXIT_SUCCESS 這是 exit 函式成功時要回傳的值, |
| 4 | RAND_MAX 這個宏是 rand 函式回傳的最大值, |
| 5 | MB_CUR_MAX 這個宏表示在多位元組字符集中的最大字符數,不能大于 MB_LEN_MAX, |
庫函式
下面是頭檔案 stdlib.h 中定義的函式:
| 序號 | 函式 & 描述 |
|---|---|
| 1 | double atof(const char *str) 把引數 str 所指向的字串轉換為一個浮點數(型別為 double 型), |
| 2 | int atoi(const char *str) 把引數 str 所指向的字串轉換為一個整數(型別為 int 型), |
| 3 | long int atol(const char *str) 把引數 str 所指向的字串轉換為一個長整數(型別為 long int 型), |
| 4 | double strtod(const char *str, char **endptr) 把引數 str 所指向的字串轉換為一個浮點數(型別為 double 型), |
| 5 | long int strtol(const char *str, char **endptr, int base) 把引數 str 所指向的字串轉換為一個長整數(型別為 long int 型), |
| 6 | unsigned long int strtoul(const char *str, char **endptr, int base) 把引數 str 所指向的字串轉換為一個無符號長整數(型別為 unsigned long int 型), |
| 7 | void *calloc(size_t nitems, size_t size) 分配所需的記憶體空間,并回傳一個指向它的指標, |
| 8 | void free(void *ptr) 釋放之前呼叫 calloc、malloc 或 realloc 所分配的記憶體空間, |
| 9 | void *malloc(size_t size) 分配所需的記憶體空間,并回傳一個指向它的指標, |
| 10 | void *realloc(void *ptr, size_t size) 嘗試重新調整之前呼叫 malloc 或 calloc 所分配的 ptr 所指向的記憶體塊的大小, |
| 11 | void abort(void) 使一個例外程式終止, |
| 12 | int atexit(void (*func)(void)) 當程式正常終止時,呼叫指定的函式 func, |
| 13 | void exit(int status) 使程式正常終止, |
| 14 | char *getenv(const char *name) 搜索 name 所指向的環境字串,并回傳相關的值給字串, |
| 15 | int system(const char *string) 由 string 指定的命令傳給要被命令處理器執行的主機環境, |
| 16 | void *bsearch(const void *key, const void base, size_t nitems, size_t size, int (compar)(const void *, const void *)) 執行二分查找, |
| 17 | void qsort(void base, size_t nitems, size_t size, int (compar)(const void , const void)) 陣列排序, |
| 18 | int abs(int x) 回傳 x 的絕對值, |
| 19 | div_t div(int numer, int denom) 分子除以分母, |
| 20 | long int labs(long int x) 回傳 x 的絕對值, |
| 21 | ldiv_t ldiv(long int numer, long int denom) 分子除以分母, |
| 22 | int rand(void) 回傳一個范圍在 0 到 RAND_MAX 之間的偽亂數, |
| 23 | void srand(unsigned int seed) 該函式播種由函式 rand 使用的亂數發生器, |
| 24 | int mblen(const char *str, size_t n) 回傳引數 str 所指向的多位元組字符的長度, |
| 25 | size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) 把引數 str 所指向的多位元組字符的字串轉換為引數 pwcs 所指向的陣列, |
| 26 | int mbtowc(whcar_t *pwc, const char *str, size_t n) 檢查引數 str 所指向的多位元組字符, |
| 27 | size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) 把陣列 pwcs 中存盤的編碼轉換為多位元組字符,并把它們存盤在字串 str 中, |
| 28 | int wctomb(char *str, wchar_t wchar) 檢查對應于引數 wchar 所給出的多位元組字符的編碼, |
<string.h>
簡介
string .h 頭檔案定義了一個變數型別、一個宏和各種操作字符陣列的函式,
庫變數
下面是頭檔案 string.h 中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 | size_t 這是無符號整數型別,它是 sizeof 關鍵字的結果, |
庫宏
下面是頭檔案 string.h 中定義的宏:
| 序號 | 宏 & 描述 |
|---|---|
| 1 | NULL 這個宏是一個空指標常量的值, |
庫函式
下面是頭檔案 string.h 中定義的函式:
| 序號 | 函式 & 描述 |
|---|---|
| 1 | void *memchr(const void *str, int c, size_t n) 在引數 str 所指向的字串的前 n 個位元組中搜索第一次出現字符 c(一個無符號字符)的位置, |
| 2 | int memcmp(const void *str1, const void *str2, size_t n) 把 str1 和 str2 的前 n 個位元組進行比較, |
| 3 | void *memcpy(void *dest, const void *src, size_t n) 從 src 復制 n 個字符到 dest, |
| 4 | void *memmove(void *dest, const void *src, size_t n) 另一個用于從 src 復制 n 個字符到 dest 的函式, |
| 5 | void *memset(void *str, int c, size_t n) 復制字符 c(一個無符號字符)到引數 str 所指向的字串的前 n 個字符, |
| 6 | char *strcat(char *dest, const char *src) 把 src 所指向的字串追加到 dest 所指向的字串的結尾, |
| 7 | char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字串追加到 dest 所指向的字串的結尾,直到 n 字符長度為止, |
| 8 | char *strchr(const char *str, int c) 在引數 str 所指向的字串中搜索第一次出現字符 c(一個無符號字符)的位置, |
| 9 | int strcmp(const char *str1, const char *str2) 把 str1 所指向的字串和 str2 所指向的字串進行比較, |
| 10 | int strncmp(const char *str1, const char *str2, size_t n) 把 str1 和 str2 進行比較,最多比較前 n 個位元組, |
| 11 | int strcoll(const char *str1, const char *str2) 把 str1 和 str2 進行比較,結果取決于 LC_COLLATE 的位置設定, |
| 12 | char *strcpy(char *dest, const char *src) 把 src 所指向的字串復制到 dest, |
| 13 | char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字串復制到 dest,最多復制 n 個字符, |
| 14 | size_t strcspn(const char *str1, const char *str2) 檢索字串 str1 開頭連續有幾個字符都不含字串 str2 中的字符, |
| 15 | char *strerror(int errnum) 從內部陣列中搜索錯誤號 errnum,并回傳一個指向錯誤訊息字串的指標, |
| 16 | size_t strlen(const char *str) 計算字串 str 的長度,直到空結束字符,但不包括空結束字符, |
| 17 | char *strpbrk(const char *str1, const char *str2) 檢索字串 str1 中第一個匹配字串 str2 中字符的字符,不包含空結束字符,也就是說,依次檢驗字串 str1 中的字符,當被檢驗字符在字串 str2 中也包含時,則停止檢驗,并回傳該字符位置, |
| 18 | char *strrchr(const char *str, int c) 在引數 str 所指向的字串中搜索最后一次出現字符 c(一個無符號字符)的位置, |
| 19 | size_t strspn(const char *str1, const char *str2) 檢索字串 str1 中第一個不在字串 str2 中出現的字符下標, |
| 20 | char *strstr(const char *haystack, const char *needle) 在字串 haystack 中查找第一次出現字串 needle(不包含空結束字符)的位置, |
| 21 | char *strtok(char *str, const char *delim) 分解字串 str 為一組字串,delim 為分隔符, |
| 22 | size_t strxfrm(char *dest, const char *src, size_t n) 根據程式當前的區域選項中的 LC_COLLATE 來轉換字串 src 的前 n 個字符,并把它們放置在字串 dest 中, |
<time.h>
簡介
time.h 頭檔案定義了四個變數型別、兩個宏和各種操作日期和時間的函式,
庫變數
下面是頭檔案 time.h 中定義的變數型別:
| 序號 | 變數 & 描述 |
|---|---|
| 1 | size_t 是無符號整數型別,它是 sizeof 關鍵字的結果, |
| 2 | clock_t 這是一個適合存盤處理器時間的型別, |
| 3 | time_t is 這是一個適合存盤日歷時間型別, |
| 4 | struct tm 這是一個用來保存時間和日期的結構, |
tm 結構的定義如下:
struct tm {
int tm_sec; /* 秒,范圍從 0 到 59 */
int tm_min; /* 分,范圍從 0 到 59 */
int tm_hour; /* 小時,范圍從 0 到 23 */
int tm_mday; /* 一月中的第幾天,范圍從 1 到 31 */
int tm_mon; /* 月,范圍從 0 到 11 */
int tm_year; /* 自 1900 年起的年數 */
int tm_wday; /* 一周中的第幾天,范圍從 0 到 6 */
int tm_yday; /* 一年中的第幾天,范圍從 0 到 365 */
int tm_isdst; /* 夏令時 */
};
庫宏
下面是頭檔案 time.h 中定義的宏:
| 序號 | 宏 & 描述 |
|---|---|
| 1 | NULL 這個宏是一個空指標常量的值, |
| 2 | CLOCKS_PER_SEC 這個宏表示每秒的處理器時鐘個數, |
庫函式
下面是頭檔案 time.h 中定義的函式:
| 序號 | 函式 & 描述 |
|---|---|
| 1 | char *asctime(const struct tm *timeptr) 回傳一個指向字串的指標,它代表了結構 timeptr 的日期和時間, |
| 2 | clock_t clock(void) 回傳程式執行起(一般為程式的開頭),處理器時鐘所使用的時間, |
| 3 | char *ctime(const time_t *timer) 回傳一個表示當地時間的字串,當地時間是基于引數 timer, |
| 4 | double difftime(time_t time1, time_t time2) 回傳 time1 和 time2 之間相差的秒數 (time1-time2), |
| 5 | struct tm *gmtime(const time_t *timer) timer 的值被分解為 tm 結構,并用協調世界時(UTC)也被稱為格林尼治標準時間(GMT)表示, |
| 6 | struct tm *localtime(const time_t *timer) timer 的值被分解為 tm 結構,并用本地時區表示, |
| 7 | time_t mktime(struct tm *timeptr) 把 timeptr 所指向的結構轉換為一個依據本地時區的 time_t 值, |
| 8 | size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 根據 format 中定義的格式化規則,格式化結構 timeptr 表示的時間,并把它存盤在 str 中, |
| 9 | time_t time(time_t *timer) 計算當前日歷時間,并把它編碼成 time_t 格式, |
參考自:https://www.runoob.com/cprogramming/c-tutorial.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52979.html
標籤:C
上一篇:重新認識C語言的指標(上)
下一篇:基礎練習 01字串
