#include 「stdlib.h」

    技术2024-12-25  18

    下面是自我测试

    | “3.14” --> 3.14 ,怎么实现 | “3” --> 3 ,怎么实现 | “88888888888” --> 88888888888,怎么实现 | “3.14yqj” --> 3.14 + “yqj”,怎么实现 | “8888888888yqj” --> 88888888888 + “yqj” ,怎么实现 | 两种申请栈内存的方法,不建议使用哪一个,重新设置栈内存的方法,如何释放栈内容 | 异常退出进程函数,正常退出进程函数 | main函数结束后跳转到function1函数,如何实现 | 获取环境变量的函数 | 如何在代码中运行Linux命令 | 二分法查找函数 | 排序函数 | 求绝对值函数 | 数学除法 | 产生随机数,如何产生随机数种子,如何获unix时间 | 二分法与排序函数都需要一个对比函数,默写一下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> /* 1:atof() { 作用:"数字" --> 数字 注意:返回值为double; } 2:atoi() { 作用:"数字" --> 数字 注意:返回值为int; } 3:atol() { 作用:"数字" --> 数字 注意:返回值为long int; } 4: strtod() { 作用:"数字 + 字符" --> 数字 + "字符"; 注意: { 返回的数字为double; 数字必须在字符前面,否则不能正确拆分 } } 5:strtol() { 作用:"数字 + 字符" --> 数字 + "字符"; 注意: { 返回的数字为long int; 数字必须在字符前面,否则不能正确拆分 参数3:表示返回的数是多少进制的! } } 6:strtoul() { 作用:"数字 + 字符" --> 数字 + "字符"; 注意: { 返回的数字为unsigned long; 数字必须在字符前面,否则不能正确拆分 参数3:表示返回的数是多少进制的! } } 7:calloc() //解决地址指针无法获取数据,例如char * Eng ; Eng =getchar(); x --> 必须确定子空间个数与子空间大小才会有获取数据的权限! { 作用:为地址分配空间 当你需要建立一个临时的地址空间,并且用指针的形式来获取存储 参数一:子空间个数 参数二:子空间大小 } 8:malloc() //解决地址指针无法获取数据,例如char * Eng ; Eng =getchar(); x --> 必须确定子空间个数与子空间大小才会有获取数据的权限! { 作用:为地址分配空间 当你需要建立一个临时的地址空间,并且用指针的形式来获取存储 参数:空间大小! } 9:realloc() { 重新调整malloc/calloc的空间大小 参数一:地址 参数二:调整后的大小 } 10:free() //释放掉malloc/calloc/realloc的空间! 11: abort() //强制终止程序,并跳出因abort产生消息框! 12:atexit() //注册需要在主函数结束后执行的函数!,并在程序终止时调用! 13:exit(); //与abort不同,exit是正常退出程序! { 0 = 正常退出 -1 = 异常退出 } 14:getenv() //返回系统环境变量的磁盘位置! 15:system() //调用dos命令行,能直接调用system系统 16:bsearch() { 参数一:需要找的数的地址 //要拿去与数组比较 参数二:待比较数组 参数三:数组元素个数 参数四:数组元素的字节 //因为不同位数的系统处理字不一样! 参数五:用于比较参数1与参数2的数组的函数 { 不用写参数,参数分别为const void * a,const void * b 注意: 泛型的传进来的实参还需要转化为具体多少字节类型的参数! bearch与qsort的比较函数都是一样的! } 返回值:参数一的地址! --> 表示找到的意思! } 17:qsort() //对数组进行排序 { 参数一:数组地址! 参数二:数组元素的个数! 参数三:数组元素的大小! 参数四:比较函数,写法与格式都是默认的! 返回值:无! } 18: { abs(x) //int 绝对值; labs(x) //long int 绝对值; llabs(x) //long long int 绝对值; } 19: div_t结构体 //int { div->quot = 商; div->rem = 余数; } div_t结构体 = div(x,y) //x 除以 y;商与余数被放在div_t结构体,就不用苦苦想名字了,而且还用结构体分类了! ldiv_t结构体 //long int { ldiv->quot = 商; ldiv->rem = 余数; } ldiv_t结构体 = ldiv(x,y) //x 除以 y;商与余数被放在div_t结构体,就不用苦苦想名字了,而且还用结构体分类了! 20:rand() % x //产生[0.x]的随机整数 { 注意:由于没设种子,每次随机产生的结果都一样! } 21:srand(time(time_t 结构体变量)) { 作用:仅仅是设立种子之后的由rand()产生的结果每一秒都是不一样的! 参数:time() //根据时间不同,确保不会产生一样的rand()! } 22:mblen() ??????????? { wchar_t : wchar_t数据类型一般为16位或32位/char是8位字符类型,最多只能包含256种字符,所以,汉字数量大char完全不能表示完,可以用宽字符表示! } */ void Lib_text1() { char* Number = "3.14"; double Number_Trans = atof(Number); printf("转化后的浮点值为:%lf", Number_Trans); } void Lib_text2() { char* Number = "3.14"; int Number_Trans = atoi(Number); printf("转化后的整型为:%d", Number_Trans); } void Lib_text3() { char* Number = "3.14"; int Number_Trans = atol(Number); printf("转化后的整型为:%ld", Number_Trans); } void Lib_text4() { char* Str = "201703836我的编号"; double Number ; char* Eng; Number = strtod(Str, &Eng); printf("\n提取出的数字:%lf\n", Number); printf("\n提取出的字符:%s\n", Eng); } void Lib_text5() { char* Str = "201703836我的编号"; long int Number; char* Eng; Number = strtol(Str, &Eng,10); printf("\n提取出的数字:%ld\n", Number); printf("\n提取出的字符:%s\n", Eng); } void Lib_text6() { char* Str = "201703836我的编号"; long int Number; char* Eng; Number = strtoul(Str, &Eng, 10); printf("\n提取出的数字:%u\n", Number); printf("\n提取出的字符:%s\n", Eng); } void Lib_text7() { char* Str; Str = (char*)calloc(5, sizeof(char)); for (size_t i = 0; i < 5; i++) { Str[i] = getchar(); putchar(Str[i]); } free(Str); } void Lib_text8() { char* Str; Str = (char*)malloc(5); for (size_t i = 0; i < 5; i++) { Str[i] = getchar(); putchar(Str[i]); } free(Str); } void Lib_text9() { char* Str; Str = (char*)malloc(5); realloc(Str, 10); for (size_t i = 0; i < 10; i++) { Str[i] = getchar(); putchar(Str[i]); } free(Str); } void Lib_text11() { FILE* fp; fp = fopen("text10.txt", "r"); if (fp == NULL) { perror(""); printf("正在关闭程序!\n"); abort(); } } void Lib_text12_exit() { printf("主函数结束后执行!\n"); } void Lib_text12() { printf("程序执行....\n"); printf("程序结束....\n"); atexit(Lib_text12_exit); } void Lib_text13() { printf("程序执行....\n"); printf("程序结束....\n"); exit(0); } void Lib_text14() { printf("PATH的路径:%s", getenv("PATH")); exit(0); } void Lib_text15() { system("ipconfig"); } int cmpfunc(const void* a, const void* b) { return (*(char*)a - *(char*)b); } void Lib_text16() { char *values = "hello!"; char* item; char key = 'h'; item = (char*)bsearch(&key, values, 6, sizeof(char), cmpfunc); if (item != NULL) { printf("Found item = %c\n", *item); } else { printf("Item = %c could not be found\n", *item); } return(0); } void Lib_text17() { int Array[] = { 10, 30, 90, 80, 70, 40 }; qsort(Array, sizeof(Array) / sizeof(int), sizeof(int), cmpfunc); for (size_t i = 0; i < sizeof(Array) / sizeof(int); i++) { printf("%d\n", Array[i]); } return(0); } void Lib_text18() { printf("%d\n", abs(-1)); printf("%ld\n", labs(-123456789)); printf("%lld\n", llabs(-1111111111123456789)); } void Lib_text19() { div_t My_Div; ldiv_t My_Ldiv; My_Div = div(27, 4); My_Ldiv = ldiv(11111111111111, 2); printf("商:%d\n",My_Div.quot); printf("余数:%d\n",My_Div.rem); printf("商:%d\n", My_Ldiv.quot); printf("余数:%d\n", My_Ldiv.rem); } void Lib_text20() { for (size_t i = 0; i < 10; i++) { printf("\n随机数%d:%d\n", i + 1, rand() % 100); } } void Lib_text21() { time_t MyTime; srand(time(&MyTime)); for (size_t i = 0; i < 10; i++) { printf("\n随机数%d:%d\n", i + 1, rand() % 100); } } void Lib_text22() { wchar_t* Eng =L"あ"; printf("%d", mblen(Eng, 1)); } void STDLIB_TEXT() { //atof()使用方法 //Lib_text1(); //atoi()使用方法 //Lib_text2(); //atol()使用方法 //Lib_text3(); //strtod()使用方法 //Lib_text4(); //strtol()使用方法 //Lib_text5(); //strtoul()使用方法 //Lib_text6(); //calloc()使用方法 //Lib_text7(); //malloc()使用方法 //Lib_text8(); //realloc()使用方法 //Lib_text9(); //abort()使用方法 //Lib_text11(); //atexit()使用方法 //Lib_text12(); //exit()使用方法 //Lib_text13(); //getenv()使用方法 //Lib_text14(); //system()使用方法 //Lib_text15(); //bsearch()使用方法 //Lib_text16(); //qsort()使用方法 //Lib_text17(); //abs(),labs(),llabs()使用方法 //Lib_text18(); //div().ldiv()使用方法 //Lib_text19(); //rand()使用方法 //Lib_text20(); //srand()使用方法 //Lib_text21(); //mblen()使用方法 Lib_text22(); }
    Processed: 0.010, SQL: 9