C语言标准库 <stdlib.h> 是C语言提供的一个头文件,其中包
▥编程
𝄐 0
c语音stdlib.h,c语言stblib,c语言stdbool.h,c语言stdbool,c语言中std,c语言stdlib.h能用什么
C语言标准库 <stdlib.h> 是C语言提供的一个头文件,其中包含了一系列常用的函数,可帮助程序员进行内存管理,字符串处理,随机数生成,排序等操作。
以下是<stdlib.h>中常用的函数及其功能:
1. 内存分配与释放:
- malloc(size_t size):动态分配指定大小的内存块,并返回指向该内存块的指针。
- calloc(size_t num, size_t size):动态分配指定数量、指定大小的内存块,并返回指向该内存块的指针。与malloc不同的是,calloc会将所分配的内存块初始化为0。
- realloc(void *ptr, size_t size):重新分配先前由malloc或calloc所分配的内存块,尺寸变为指定的size。若ptr为NULL,则realloc相当于malloc;若size为0,则相当于free(ptr)。
- free(void *ptr):释放由malloc、calloc或realloc所分配的内存块。
示例:
c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *p = (int*)malloc(5 * sizeof(int)); // 动态分配5个整型空间
if (p == NULL) { // 判断是否分配成功
printf("Failed to allocate memory\n");
exit(1);
}
for (int i = 0; i < 5; i++) {
p[i] = i+1;
}
for (int i = 0; i < 5; i++) {
printf("%d ", p[i]); // 输出1 2 3 4 5
}
free(p); // 释放内存
return 0;
}
2. 字符串操作:
- atoi(const char *str):将字符串转换为整型数。
- atof(const char *str):将字符串转换为浮点数。
- strcmp(const char *s1, const char *s2):比较两个字符串s1和s2的大小关系,若s1>s2,则返回正数;若s1<s2,则返回负数;若s1=s2,则返回0。
- strcpy(char *dest, const char *src):将src字符串复制到dest字符串中。
- strcat(char *dest, const char *src):将src字符串拼接在dest字符串后面。
示例:
c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[] = "123";
int num = atoi(str);
printf("num = %d\n", num); // 输出num = 123
char str1[] = "3.14";
double d = atof(str1);
printf("d = %lf\n", d); // 输出d = 3.140000
char s1[] = "hello";
char s2[] = "world";
printf("strcmp(s1, s2) = %d\n", strcmp(s1, s2)); // 输出strcmp(s1, s2) = -15
char dest[20] = "hello";
char src[] = "world";
strcat(dest, src);
printf("dest = %s\n", dest); // 输出dest = helloworld
return 0;
}
3. 随机数生成:
- rand():生成一个随机数,取值范围为[0, RAND_MAX](RAND_MAX的大小因平台而异)。
- srand(unsigned int seed):设置rand()函数产生随机数序列的起点。
示例:
c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL)); // 设置随机种子为当前时间
for (int i = 0; i < 5; i++) {
printf("%d ", rand()); // 生成并输出五个随机数
}
return 0;
}
4. 其他函数:
- system(const char *command):调用操作系统提供的命令行接口执行指定的命令。
- exit(int status):退出程序,并返回状态码status。
- qsort(void *base
C语言标准库 <stdlib.h> 是C语言提供的一个头文件,其中包含了一系列常用的函数,可帮助程序员进行内存管理,字符串处理,随机数生成,排序等操作。
以下是<stdlib.h>中常用的函数及其功能:
1. 内存分配与释放:
- malloc(size_t size):动态分配指定大小的内存块,并返回指向该内存块的指针。
- calloc(size_t num, size_t size):动态分配指定数量、指定大小的内存块,并返回指向该内存块的指针。与malloc不同的是,calloc会将所分配的内存块初始化为0。
- realloc(void *ptr, size_t size):重新分配先前由malloc或calloc所分配的内存块,尺寸变为指定的size。若ptr为NULL,则realloc相当于malloc;若size为0,则相当于free(ptr)。
- free(void *ptr):释放由malloc、calloc或realloc所分配的内存块。
示例:
c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *p = (int*)malloc(5 * sizeof(int)); // 动态分配5个整型空间
if (p == NULL) { // 判断是否分配成功
printf("Failed to allocate memory\n");
exit(1);
}
for (int i = 0; i < 5; i++) {
p[i] = i+1;
}
for (int i = 0; i < 5; i++) {
printf("%d ", p[i]); // 输出1 2 3 4 5
}
free(p); // 释放内存
return 0;
}
2. 字符串操作:
- atoi(const char *str):将字符串转换为整型数。
- atof(const char *str):将字符串转换为浮点数。
- strcmp(const char *s1, const char *s2):比较两个字符串s1和s2的大小关系,若s1>s2,则返回正数;若s1<s2,则返回负数;若s1=s2,则返回0。
- strcpy(char *dest, const char *src):将src字符串复制到dest字符串中。
- strcat(char *dest, const char *src):将src字符串拼接在dest字符串后面。
示例:
c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[] = "123";
int num = atoi(str);
printf("num = %d\n", num); // 输出num = 123
char str1[] = "3.14";
double d = atof(str1);
printf("d = %lf\n", d); // 输出d = 3.140000
char s1[] = "hello";
char s2[] = "world";
printf("strcmp(s1, s2) = %d\n", strcmp(s1, s2)); // 输出strcmp(s1, s2) = -15
char dest[20] = "hello";
char src[] = "world";
strcat(dest, src);
printf("dest = %s\n", dest); // 输出dest = helloworld
return 0;
}
3. 随机数生成:
- rand():生成一个随机数,取值范围为[0, RAND_MAX](RAND_MAX的大小因平台而异)。
- srand(unsigned int seed):设置rand()函数产生随机数序列的起点。
示例:
c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL)); // 设置随机种子为当前时间
for (int i = 0; i < 5; i++) {
printf("%d ", rand()); // 生成并输出五个随机数
}
return 0;
}
4. 其他函数:
- system(const char *command):调用操作系统提供的命令行接口执行指定的命令。
- exit(int status):退出程序,并返回状态码status。
- qsort(void *base
本文地址:
/show-278561.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。