編程學習網 > 編程語言 > C/C++開發 > c語言常用的庫函數有哪些?(C語言庫函數總結)
2022
09-17

c語言常用的庫函數有哪些?(C語言庫函數總結)

本篇文章總結一下我認為在嵌入式C語言常用的庫函數有哪些?熟悉回顧下各個函數的功能,有什么參數,分別屬于哪個頭文件等等。

C 標準庫是一組 C 內置函數、常量和頭文件,比如 <stdio.h>、<stdlib.h>、<math.h>,等等。這個標準庫可以作為 C 程序員的參考手冊。

1<assert.h>

C 標準庫的 assert.h頭文件提供了一個名為 assert 的宏,它可用于驗證程序做出的假設,并在假設為假時輸出診斷消息。

2 <stdio.h>

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 中。


3<string.h>

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 中。

4<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 格式。

5<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 所給出的多字節字符的編碼。
以上就是“c語言常用的庫函數有哪些?(C語言庫函數總結)”的詳細內容,想要了解更多C語言內容歡迎持續關注編程學習網


掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取