cstdlib
是C++标准库中的头文件,提供了一些常用的函数和宏来进行通用的操作,例如处理字符串、类型转换、随机数生成等。以下是一些cstdlib
头文件中常用的函数和宏:
atoi()
: 将字符串转换为整数。atol()
: 将字符串转换为长整数。atof()
: 将字符串转换为浮点数。rand()
: 生成一个伪随机数。srand()
: 设置随机数生成器的种子。malloc()
: 分配指定大小的内存空间。calloc()
: 分配指定数量和大小的内存空间,并将其初始化为0。realloc()
: 重新分配已分配内存的大小。free()
: 释放之前通过malloc
或calloc
分配的内存空间。abs()
: 计算整数的绝对值。labs()
: 计算长整数的绝对值。div()
: 计算两个整数的商和余数。ldiv()
: 计算两个长整数的商和余数。getenv()
: 获取环境变量的值。system()
: 在新进程中执行操作系统命令。EXIT_SUCCESS
: 表示程序正常终止的返回值。EXIT_FAILURE
: 表示程序非正常终止的返回值。NULL
: 表示一个空指针。
这些函数和宏提供了一些常用的功能,可以方便地在C++程序中使用。要使用这些函数和宏,只需包含<cstdlib>
头文件即可。
请注意,随机数生成器在每次程序运行时都应该使用srand()
函数设置种子,以确保生成不同的随机数序列。通常,可以使用当前时间作为种子,例如srand((unsigned)time(NULL))
。
例如:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
const int size = 10; // 数组大小
srand((unsigned)time(NULL)); // 设置随机数生成器种子为当前时间
int *arr = new int[size]; // 动态分配数组内存空间
// 生成随机数并初始化数组
for (int i = 0; i < size; i++) {
arr[i] = rand() % 100;//将生成的随机数去模100,将其范围限制到0到99
}
// 冒泡排序
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出排序结果
std::cout << "Sorted array: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
delete[] arr; // 释放数组内存空间
return 0;
}