天天看點

C++标準庫 Utilities library <cstdlib>

該系列博文主要參考自 cppreference.com 和 cplusplus.com

由于部落客水準有限,内容僅供參考

cstdlib

這個頭檔案比較複雜,有各種東西。

String conversion (字元串轉換)

atof   atoi   atol   atoll(c++11)

函數原型:

double atof(const char *str);  (該函數較為特殊,atof卻轉為了double類型,其餘均正常)

作用:

字元串轉為double類型。

strtod   strtof(c++11)   strtol   strtold(c++11)   strtoll(c++11)   strtoul   strtoull(c++11)

函數原型:

double strtod(const char *str, char **endptr);

作用:

字元串轉為double類型,endptr指向剩餘部分的開頭。(其餘類似)

Pseudo-random sequence generation(僞随機序列的生成)

rand   srand

函數原型:

int rand();

void srand(unsigned int seed);

作用:

這兩個函數用于産生随機數。srand函數來設定随機種子,一般選取系統時間,rand函數産生随機數。

Dynamic memory management(動态記憶體管理)

malloc   calloc   realloc   free

函數原型:

void *malloc(size_t size);

void *calloc(size_t num, size_t size);

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

void free(void *ptr);

作用:

malloc:配置設定size位元組大小的空閑存儲空間,若成功,傳回記憶體塊的最低位址,若失敗,傳回NULL

calloc:配置設定num個size位元組大小的存儲空間,若成功,傳回記憶體塊的最低低至,若失敗,傳回NULL

realloc:重新配置設定size位元組大小的存儲空間,若成功,傳回記憶體塊的最低位址,若失敗,傳回NULL

free:釋放以上三個函數臨時配置設定的空間

Environment(環境)

abort   exit quick_exit(c++11)   _Exit(c++11)   atexit   at_quick_exit(c++11)   system   getenv

函數原型:

void abort();

void exit(int exit_code);

void quick_exit(int exit_code);

void _Exit(int exit_code);

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

int at_quick_exit(void (*func)());

int system(const char *command);

const char *getenv(const char *env_var);

作用:

abort:導緻程式異常終止,不進行清理

exit:導緻程式正常終止,進行清理

quick_exit:導緻程式正常終止,不完全清理

_Exit:導緻程式正常終止,不進行清理

atexit:程式正常終止時,執行函數func

at_qucik_exit:程式被quick_exit終止時,執行函數func

system:執行系統指令

getenv:獲得環境變量

Searching and sorting(查找與排序)

bsearch   qsort

函數原型:

void *bsearch(const void *key, const void *base, size_t num, size_t size, int (*compar)(const void *,const void *));

void qsort(void *base, size_t num, size_t size, int (*compar)(const void *, const void *));

作用:

二分查找與快排(這裡不做贅述)

Integer arithmethics(整數運算)

abs   div   labs   ldiv   llabs   lldiv

函數原型:

int abs(int n);

div_t div(int numer, int denom);

(其餘類似)

作用:

取絕對值與整除(div_t後文會講到)

Multibyte characters(多位元組字元)

mblen   mbtowc   wctomb

函數原型:

int mblen(const char *pmb, size_t max);

int mbtowc(wchar_t *pwc, char *pmb, size_t max);

int wctomb(char *pmb, wchar_t wc);

作用:

mblen:獲得多位元組字元的長度

mbtowc:多位元組序列轉換為寬字元

wctomb:寬序列轉換為多位元組字元

Multibyte strings(多位元組字元串)

mbstowcs   wcstombs

函數原型:

size_t mbstowcs(wchar_t *dest, const char *src, size_t max);

size_t wcstombs(char *dest, const wchar_t *src, size_t max);

作用;

mbstowcs:多位元組字元字元串轉換為寬字元字元串

wcstombs:寬字元字元串轉換為多位元組字元字元串

Macro constants(宏常量)

EXIT_FAILURE   EXIT_SUCCESS   MB_CUR_MAX   NULL   RAND_MAX

定義:

EXIT_FAILURE 錯誤結束

EXIT_SUCCESS 正确結束

MB_CUR_MAX 多位元組字元的最大值

NULL 空字元串

RAND_MAX rand函數傳回的最大值

Types(類型)

div_t   ldiv_t   lldiv_t(c++11)   size_t

定義:

typedef struct {

  int quot;

  int rem;

} div_t;

ldiv_t lldiv_t 類似

typedef unsigned int size_t;

作用:

div_t 為div函數的傳回值類型,quot為商,rem為餘數

繼續閱讀