C语言中你可能不熟悉的头文件<cstdlib>(stdlib.h)

C Standard General Utilities Library (header)

C标准通用工具库(头文件)

此头文件定义了一些通用功能函数,包括动态存储器管理,随机数生成,与操作系统环境通信,整数算术,搜索,排序和转换。

函数:

字符串转换

  • atof

    将字符串(char[])转换为double类型数, 即(char) array-> float(函数)

  • atoi

    字符串转换为整型(函数)

  • atol

    字符串转换为long类型(函数)

  • atoll (c++11)

    字符串转换为长整型long long类型(函数)

  • strtod

    字符串转换为double类型(函数)

  • strtof (c++11)

    字符串转换为浮点类型(函数)

  • strtol

    字符串转换为long integer类型(函数)

  • strtold (c++11)

    字符串转换为long double类型(函数)

  • strtoll (c++11)

    字符串转换为long long integer类型(函数)

  • strtoul

    字符串转换为无符号long integer类型(函数)

  • strtoull (c++11)

    字符串转换为无符号long long integer类型(函数)

  • 函数(非标准):

    itoa

    将整数转换为字符串.

    注: itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。

伪随机序列生成

  • rand

    产生一个伪随机数(函数)

  • srand

    初始化随机数生成器, 为伪随机数生成器设置种子(函数)

动态内存管理

  • calloc

    分配内存且用 0 数组初始化(函数)

  • free

    释放内存(函数)

  • malloc

    分配内存(函数)

  • realloc

    重分配内存(函数)

系统环境

  • abort

    使程序异常中止,不会主动释放资源(函数)

  • atexit

    注册一个一旦程序发起 exit 请求就会调用的函数(函数)

  • at_quick_exit (C++11)

    注册一个一旦程序发起 quick_exit 请求就会调用的函数(函数)

  • exit

    使程序正常中止,主动释放资源(函数)

  • getenv

    获取系统环境变量列表(函数)

  • quick_exit (C++11)

    使程序正常中止,不会主动释放所有资源(函数)

  • system

    执行系统命令(函数)

  • _Exit (C++11)

    使程序正常中止,不会主动释放资源(函数)

搜索和排序

  • bsearch

    在数组中进行二分(Binary)查找(函数)

  • qsort

    对数组元素进行快速排序(函数)

整数算术

  • abs

    获得整数(Integer)或浮点数(Floating point number)的绝对值(函数)

  • div

    同时获得两数相除的商(Quotient)及余数(Remainder)(函数)

  • labs

    获得整数的绝对值(函数)

  • ldiv

    同时获得两数相除的商及余数(函数)

  • llabs

    获得整数的绝对值(函数)

  • lldiv

    同时获得两数相除的商及余数(函数)

多字节(Multibyte)字符

  • mblen

    返回下一个多字节字符的字节数(函数)

  • mbtowc

    将下一个多字节字符转化成宽字符(函数)

  • wctomb

    将一个宽字符转化成对应的多字节字符(函数)

多字节字符串

  • mbstowcs

    将一个多字节字符串转化成宽字符串(函数)

  • wcstombs

    将一个宽字符串转化成多字节字符串(函数)

宏常数

  • EXIT_FAILURE

    程序失败终止码, 表明一个程序执行失败 (macro)

  • EXIT_SUCCESS

    程序成功终止码, 表明一个程序非正常完成执行 (macro)

  • MB_CUR_MAX

    多字节字符的最大尺寸 (macro)

  • NULL

    空指针 (macro)

  • RAND_MAX

    std::rand 可能产生的最大随机数值 (macro)

类型(type)

类型 描述
div_t 结构体类型,由 div 函数返回
ldiv_t 结构体类型,由 ldiv 函数返回
lldiv_t 结构体类型,由 lldiv 函数返回
size_t 无符号整型 (type )

部分函数的具体函数原型:

序号 函数 & 描述
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 所给出的多字节字符的编码。

参考链接: http://www.cplusplus.com/reference/cstdlib/

C语言中你可能不熟悉的头文件(stdlib.h)的更多相关文章

  1. C语言中头文件<stdio.h>中的#ifndef _STDIO_H_

    先了解这里的相关知识:http://www.cnblogs.com/stemon/p/4000468.html 头文件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都in ...

  2. 在源文件(.c)和头文件(.h)中声明和定义的区别——C语言

    最近在看多文件编程的时候遇到的一个问题,本来以为理解了声明和定义的区别(然而并没有····),也算是重新认识了一次声明和定义,下面上代码 情形一:在源文件(.c)中 相信大部分读者对声明和定义的理解是 ...

  3. C++中#include包含头文件带 .h 和不带 .h 的区别

    C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些 ...

  4. C/C++ 中的头文件 stdio.h和stdlib.h

    stdio 就是指 “standard input & output" 标准输入输出 stdio.h所包含的函数: 文件访问fopenfreopenfflushfclose二进制输入 ...

  5. Visual Studio中头文件stdafx.h的作用

    在较新版的Visual Studio中,新生成的C++项目文件的的头文件夹下会默认有头文件stdafx.h,而源文件夹下则默认有源文件stdafx.cpp,手动将这些文件删除后,编译时系统还会报错.下 ...

  6. C++ 中头文件(.h)和源文件(.cc)的写法简述

    用C++编写比较大型的项目时,文件的分割管理确实确实是非常必要的 .下面就非常简洁明了地谈谈头文件(.h)和源文件(.cc)应该怎么写. 头文件(.h):写类的声明(包括类里面的成员和方法的声明).函 ...

  7. 在C语言中使用syslog打印日志到日志文件

    参见 <unix 环境高级编程>第13 章 精灵进程 Syslog为每个事件赋予几个不同的优先级: LOG_EMERG——紧急情况 LOG_ALERT——应该被立即改正的问题,如系统数据库 ...

  8. C++中头文件(.h)和源文件(.cpp)都应该写些什么

    头文件(.h): 写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等,但一般来说不写出具体的实现. 在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下): ...

  9. c语言_头文件_windows.h

    概述 Win32程序的开头都可看到: #include <windows.h> WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件 ...

随机推荐

  1. Capslock+ 键盘党都爱的高效利器 - 让 Windows 快捷键操作更加灵活强大

    Capslock+ 键盘党都爱的高效利器 - 让 Windows 快捷键操作更加灵活强大  优化辅助    Windows   2016-06-05 91,167   微博微信QQ空间印象有道邮件   ...

  2. fiddler安装 与 https

    1.下载最新版fiddler ,强烈建议在官网下载:https://www.telerik.com/download/fiddler 2. 正常傻瓜式安装,下一步,下一步,安装完毕后,先不用急于打开软 ...

  3. 解决win10搜索框不能使用的问题

    1.首先,打开管理员命令窗口,win+x,可以看到弹出一个窗口,打开windows Powershell(管理员) 2,输入 Get-AppXPackage -Name Microsoft.Windo ...

  4. C++入门笔记(二)变量和基本类型

    变量和基本类型 一.基本内置类型 1.除去布尔类型和扩展的字符型外,其他整型可以分为带符号的和无符号的. 2.与其他整型不同,字符型被分为了三种:char.signed char 和 unsigned ...

  5. [BZOJ1925][SDOI2010]地精部落(DP)

    题意 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...

  6. 【转】 微软在.NET官网上线.NET 架构指南

    原文地址:http://www.cnblogs.com/shanyou/p/6676357.html. 微软在Visual Studio 2017 正式发布的时候也上线了一个参考应用https://g ...

  7. 微信小程序----没有 DOM 对象,一切基于组件化 ---- mpvue

    封装好用的 类库 和 组件,复用且灵活度高 抽取相同的部分放在函数内部(组件内部) 抽取不同的部分放在形参(组件 props 传参,或者插槽) new Promise 运行时 初始化实例对象的状态为 ...

  8. cf 744D

    一开始没看懂题解,想了好久(一整天)才想明白是枚举弦上点二分半径check角度,看了下clj的代码发现思路都一样就开始写了. 借鉴了一下clj的代码. 调了一个多小时. 几个注意点:看到好多 rand ...

  9. 用js限制网页只能在微信内置浏览器或支付宝内置浏览器中打开

    function is_weixinOrAli(){ var ua = navigator.userAgent.toLowerCase(); //判断浏览器的类型 if (ua.match(/Micr ...

  10. Android Studio 去除上方标题

    选中代码再Ctrl+shift+'/' 可加/***/注释 https://blog.csdn.net/wuqingsen1/article/details/78554117 styles.xml & ...