該系列博文主要參考自 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為餘數