zoukankan      html  css  js  c++  java
  • c语言实用功能库函数#include<stdlib.h>

    实用函数<stdlib.h>

    在头文件<stdlib.h>中说明了用于数值转换、内存分配以及具有其他相似任务的函数。

    1 atof

    #include <stdlib.h>

    double atof(const char *str);

    把字符串str转换成double类型。等价于:strtod(str, (char**)NULL)。

    2 atoi

    #include <stdlib.h>

    int atoi(const char *str);

    把字符串str转换成int类型。等价于:(int)strtol(str, (char**)NULL, 10)。

    3 atol

    #include <stdlib.h>

    long atol(const char *str);

    把字符串str转换成long类型。等价于:strtol(str, (char**)NULL, 10)。

    4 strtod

    #include <stdlib.h>

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

    把字符串start的前缀转换成double类型。在转换中跳过start的前导空白符,然后逐个读入构成数的字符,任何非浮点数成分的字符都会终止上述过程。如果end不为NULL,则把未转换部分的指针保存在*end中。

    如果结果上溢,返回带有适当符号的HUGE_VAL,如果结果下溢,那么函数返回0。在这两种情况下,errno均被置为ERANGE。

    5 strtol

    #include <stdlib.h>

    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 <stdlib.h>

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

    与strtol()类似,只是结果为unsigned long类型,溢出时值为ULONG_MAX。

    7 rand

    #include <stdlib.h>

    int rand(void);

    产生一个0到RAND_MAX之间的伪随机整数。RAND_MAX值至少为32767。

    8 srand

    #include <stdlib.h>

    void srand(unsigned int seed);

    设置新的伪随机数序列的种子为seed。种子的初值为1。

    9 calloc

    #include <stdlib.h>

    void *calloc(size_t num, size_t size);

    为num个大小为size的对象组成的数组分配足够的内存,并返回指向所分配区域的第一个字节的指针;如果内存不足以满足要求,则返回NULL。

    分配的内存区域中的所有位被初始化为0。

    10 malloc

    #include <stdlib.h>

    void *malloc(size_t size);

    为大小为size的对象分配足够的内存,并返回指向所分配区域的第一个字节的指针;如果内存不足以满足要求,则返回NULL。

    不对分配的内存区域进行初始化。

    11 realloc

    #include <stdlib.h>

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

    将ptr指向的内存区域的大小改为size个字节。如果新分配的内存比原内存大,那么原内存的内容保持不变,增加的空间不进行初始化。如果新分配的内存比原内存小,那么新内存保持原内存区中前size字节的内容。函数返回指向新分配空间的指针。如果不能满足要求,则返回NULL,原ptr指向的内存区域保持不变。

    如果ptr为NULL,则行为等价于malloc(size)。

    如果size为0,则行为等价于free(ptr)。

    12 free

    #include <stdlib.h>

    void free(void *ptr);

    释放ptr指向的内存空间,若ptr为NULL,则什么也不做。ptr必须指向先前用动态分配函数malloc、realloc或calloc分配的空间。

    13 abort

    #include <stdlib.h>

    void abort(void);

    使程序非正常终止。其功能类似于raise(SIGABRT)。

    14 exit

    #include <stdlib.h>

    void exit(int status);

    使程序正常终止。atexit函数以与注册相反的顺序被调用,所有打开的文件被刷新,所有打开的流被关闭。status的值如何被返回依具体的实现而定,但用0表示正常终止,也可用值EXIT_SUCCESS和EXIT_FAILURE。

    15 atexit

    #include <stdlib.h>

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

    注册在程序正常终止时所要调用的函数func。如果成功注册,则函数返回0值,否则返回非0值。

    16 system

    #include <stdlib.h>

    int system(const char *str);

    把字符串str传送给执行环境。如果str为NULL,那么在存在命令处理程序时,返回0值。如果str的值非NULL,则返回值与具体的实现有关。

    17 getenv

    #include <stdlib.h>

    char *getenv(const char *name);

    返回与name相关的环境字符串。如果该字符串不存在,则返回NULL。其细节与具体的实现有关。

    18 bsearch

    #include <stdlib.h>

    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是数组元素指针。

    返回值必须如下:

    • arg1 < arg2时,返回值<0;
    • arg1 == arg2时,返回值==0;
    • arg1 > arg2时,返回值>0。

    数组base必须按升序排列(与compare函数定义的大小次序一致)。

    19 qsort

    #include <stdlib.h>

    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);

    其返回值必须如下所示:

    • • arg1 < arg2,返回值<0;
    • • arg1 == arg2,返回值==0;
    • • arg1 > arg2,返回值>0。

    20 abs

    #include <stdlib.h>

    int abs(int num);

    返回int变量num的绝对值。

    21 labs

    #include <stdlib.h>

    long labs(long int num);

    返回long类型变量num的绝对值。

    22 div

    #include <stdlib.h>

    div_t div(int numerator, int denominator);

    返回numerator/denominator的商和余数,结果分别保存在结构类型div_t的两个int成员quot和rem中。

    23 ldiv

    #include <stdlib.h>

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

    返回numerator/denominator的商和余数,结果分别保存在结构类型ldiv_t的两个long成员quot和rem中。

  • 相关阅读:
    EF CodeFirst下,当实体结构发生修改怎么更新数据库结构 【常用总结】
    基于 ASP.NET Core 的 EF Core 入门
    autofac 一个接口多个实现的情况
    C#中使用HttpClient来Post数据的内容HttpContent的各种格式
    # 使用HttpClient的post,get 封装
    C# 模拟提交带附件(input type=file)的表单
    C#使用HttpClient上传文件并附带其他参数
    2021年总结一下
    PhpStorm+Xdebug断点调试
    PHP数组排序
  • 原文地址:https://www.cnblogs.com/haore147/p/3647562.html
Copyright © 2011-2022 走看看