C語言筆記 16_標準庫&stdio&stdlib&string&time

<stdio.h>

簡介

stdio .h 頭文件定義了三個變量類型、一些宏和各類函數來執行輸入和輸出。html

庫變量

下面是頭文件 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_ENDSEEK_SET 這些宏是在 fseek 函數中使用,用於在一個文件中定位不一樣的位置。
9 TMP_MAX 這個宏是 tmpnam 函數可生成的獨特文件名的最大數量。
10 stderr、stdinstdout 這些宏是指向 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 中定義的宏:code

序號 宏 & 描述
1 NULL 這個宏是一個空指針常量的值。
2 EXIT_FAILURE 這是 exit 函數失敗時要返回的值。
3 EXIT_SUCCESS 這是 exit 函數成功時要返回的值。
4 RAND_MAX 這個宏是 rand 函數返回的最大值。
5 MB_CUR_MAX 這個宏表示在多字節字符集中的最大字符數,不能大於 MB_LEN_MAX。

庫函數

下面是頭文件 stdlib.h 中定義的函數:orm

序號 函數 & 描述
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、mallocrealloc 所分配的內存空間。
9 void *malloc(size_t size) 分配所需的內存空間,並返回一個指向它的指針。
10 void realloc(void ptr, size_t size) 嘗試從新調整以前調用 malloccalloc 所分配的 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)str1str2 的前 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)str1str2 進行比較,最多比較前 n 個字節。
11 int strcoll(const char str1, const char str2)str1str2 進行比較,結果取決於 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

相關文章
相關標籤/搜索