c語言實用功能庫函式 include

2021-09-06 14:48:37 字數 4556 閱讀 4255

實用函式

在標頭檔案中說明了用於數值轉換、記憶體分配以及具有其他相似任務的函式。

1 atof

#include

double atof(const char *str);

把字串str轉換成double型別。等價於:strtod(str, (char**)null)。

2 atoi

#include

int atoi(const char *str);

把字串str轉換成int型別。等價於:(int)strtol(str, (char**)null, 10)。

3 atol

#include

long atol(const char *str);

把字串str轉換成long型別。等價於:strtol(str, (char**)null, 10)。

4 strtod

#include

double strtod(const char *start, char **end);

把字串start的字首轉換成double型別。在轉換中跳過start的前導空白符,然後逐個讀入構成數的字元,任何非浮點數成分的字元都會終止上述過程。如果end不為null,則把未轉換部分的指標儲存在*end中。

如果結果上溢,返回帶有適當符號的huge_val,如果結果下溢,那麼函式返回0。在這兩種情況下,errno均被置為erange。

5 strtol

#include

long int strtol(const char *start, char **end, int radix);

把字串start的字首轉換成long型別,在轉換中跳過start的前導空白符。如果end不為null,則把未轉換部分的指標儲存在*end中。

如果radix的值在2到36間之間,那麼轉換按該基數進行;如果radix為0,則基數為八進位制、十進位制、十六進製制,以0為前導的是八進位制,以0x或0x為前導的是十六進製制。無論在哪種情況下,串中的字母是表示10到radix-1之間數字的字母。如果radix是16,可以加上前導0x或0x。

如果結果上溢,則依據結果的符號返回long_max或long_min,置errno為erange。

6 strtoul

#include

unsigned long int strtoul(const char *start, char **end, int radix);

與strtol()類似,只是結果為unsigned long型別,溢位時值為ulong_max。

7 rand

#include

int rand(void);

產生乙個0到rand_max之間的偽隨機整數。rand_max值至少為32767。

8 srand

#include

void srand(unsigned int seed);

設定新的偽隨機數序列的種子為seed。種子的初值為1。

9 calloc

#include

void *calloc(size_t num, size_t size);

為num個大小為size的物件組成的陣列分配足夠的記憶體,並返回指向所分配區域的第乙個位元組的指標;如果記憶體不足以滿足要求,則返回null。

分配的記憶體區域中的所有位被初始化為0。

10 malloc

#include

void *malloc(size_t size);

為大小為size的物件分配足夠的記憶體,並返回指向所分配區域的第乙個位元組的指標;如果記憶體不足以滿足要求,則返回null。

不對分配的記憶體區域進行初始化。

11 realloc

#include

void *realloc(void *ptr, size_t size);

將ptr指向的記憶體區域的大小改為size個位元組。如果新分配的記憶體比原記憶體大,那麼原記憶體的內容保持不變,增加的空間不進行初始化。如果新分配的記憶體比原記憶體小,那麼新記憶體保持原記憶體區中前size位元組的內容。函式返回指向新分配空間的指標。如果不能滿足要求,則返回null,原ptr指向的記憶體區域保持不變。

如果ptr為null,則行為等價於malloc(size)。

如果size為0,則行為等價於free(ptr)。

12 free

#include

void free(void *ptr);

釋放ptr指向的記憶體空間,若ptr為null,則什麼也不做。ptr必須指向先前用動態分配函式malloc、realloc或calloc分配的空間。

13 abort

#include

void abort(void);

使程式非正常終止。其功能類似於raise(sigabrt)。

14 exit

#include

void exit(int status);

使程式正常終止。atexit函式以與註冊相反的順序被呼叫,所有開啟的檔案被重新整理,所有開啟的流被關閉。status的值如何被返回依具體的實現而定,但用0表示正常終止,也可用值exit_success和exit_failure。

15 atexit

#include

int atexit(void (*func)(void));

註冊在程式正常終止時所要呼叫的函式func。如果成功註冊,則函式返回0值,否則返回非0值。

16 system

#include

int system(const char *str);

把字串str傳送給執行環境。如果str為null,那麼在存在命令處理程式時,返回0值。如果str的值非null,則返回值與具體的實現有關。

17 getenv

#include

char *getenv(const char *name);

返回與name相關的環境字串。如果該字串不存在,則返回null。其細節與具體的實現有關。

18 bsearch

#include

void *bsearch(const void *key, const void *base, size_t n, size_t size,  int (*compare)(const void *, const void *));

在base[0]...base[n-1]之間查詢與*key匹配的項。size指出每個元素占有的位元組數。函式返回乙個指向匹配項的指標,若不存在匹配則返回null。

函式指標compare指向的函式把關鍵字key和陣列元素比較,比較函式的形式為:

int func_name(const void *arg1, const void *arg2);

arg1是key指標,arg2是陣列元素指標。

返回值必須如下:

陣列base必須按公升序排列(與compare函式定義的大小次序一致)。

19 qsort

#include

void qsort(void *base, size_t n, size_t size, int (*compare)(const void *, const void *));

對由n個大小為size的物件構成的陣列base進行公升序排序。

比較函式compare的形式如下:

int func_name(const void *arg1, const voie *arg2);

其返回值必須如下所示:

20 abs

#include

int abs(int num);

返回int變數num的絕對值。

21 labs

#include

long labs(long int num);

返回long型別變數num的絕對值。

22 div

#include

div_t div(int numerator, int denominator);

返回numerator/denominator的商和餘數,結果分別儲存在結構型別div_t的兩個int成員quot和rem中。

23 ldiv

#include

ldiv_t div(long int numerator, long int denominator);

返回numerator/denominator的商和餘數,結果分別儲存在結構型別ldiv_t的兩個long成員quot和rem中。

C語言標準庫函式與功能講解

1 數學函式 數學庫函式宣告在 math.h 中,主要有 abs x 求整型數x 的絕對值 cos x x 弧度 的余弦 fabs x 求浮點數x 的絕對值 ceil x 求不小於x 的最小整數 floor x 求不大於x 的最小整數 log x 求x 的自然對數 log10 x 求x 的對數 底為...

常用的字串處理庫函式的C語言實現

if 0 給整數陣列賦值數字,非數字則返回0,數字則返回數字 define bufsize 100 define size 5 char buf bufsize int bufp 0 int getch void void ungetch int c int getint int pn if isd...

c語言基礎之string庫函式基本功能實現

include include include using namespace std intmy strlen const char src include include include using namespace std char my strcpy char src,const char...