C++标准库 Utilities library <cstdlib>

来源:互联网 发布:java rest api是什么 编辑:程序博客网 时间:2024/06/08 15:15

该系列博文主要参考自 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为余数





原创粉丝点击