Стандартная библиотека C++ <cstdlib>

<cstdlib>Является заголовочным файлом в стандартной библиотеке C++, предоставляющим различные общие служебные функции, включая выделение памяти, управление процессами, запросы к среде, сортировку и поиск, математические преобразования, генерацию псевдослучайных чисел и т. д. Эти функции изначально происходят из стандартной библиотеки C.<stdlib.h>, стандартизированы и расширены в C++.

Синтаксис

В программах на C++, чтобы использоватьcstdlibфункции в ней, необходимо сначала подключить этот заголовочный файл:

#include <cstdlib>

Общие функции

cstdlibсодержит множество полезных функций. Ниже приведены некоторые часто используемые функции и их краткие описания:

  1. exit(int status): Завершает выполнение программы и возвращает код состояния.
  2. system(const char* command): Выполняет строку командной строки.
  3. malloc(size_t size): Выделяет память указанного размера.
  4. free(void* ptr): Освобождает ранее выделенную память.
  5. atoi(const char* str): Преобразует строку в целое число.
  6. atof(const char* str): Преобразует строку в число с плавающей запятой.
  7. rand(): Генерирует случайное число.
  8. srand(unsigned int seed): Устанавливает начальное значение для генератора случайных чисел.

Пример

Ниже приведены некоторые примеры использованияcstdlibфункций в:

Пример 1: ИспользованиеexitФункция

Пример

#include <iostream>
#include <cstdlib>

int main() {
    std::cout << "Эта программа сейчас завершится." << std::endl;
    exit(0); // Нормальное завершение программы
    return 0; // Эта строка кода не будет выполнена
}

Результат вывода:

This program will exit now.

Пример 2: ИспользованиеsystemФункция

Пример

#include <iostream>
#include <cstdlib>

int main() {
    std::cout << "Выполнение системной команды: dir" << std::endl;
    system("dir"); // Отображение файлов и папок в текущем каталоге в Windows
    return 0;
}

Результат вывода:

Executing a system command: dir

Затем выводится список файлов и папок в текущем каталоге.

Пример 3: ИспользованиеmallocиfreeФункция

Пример

#include <iostream>
#include <cstdlib>

int main() {
    int* ptr = (int*)malloc(10 * sizeof(int)); // Выделение памяти
    if (ptr == NULL) {
        std::cout << "Не удалось выделить память." << std::endl;
        return 1;
    }

    for (int i = 0; i < 10; ++i) {
        ptr[i] = i * i; // Использовать выделенную память
    }

    for (int i = 0; i < 10; ++i) {
        std::cout << "Элемент " << i << ": " << ptr[i] << std::endl;
    }

    free(ptr); // освободить память
    return 0;
}

Результат вывода:

Element 0: 0
Element 1: 1
Element 2: 4
...
Element 9: 81

Пример 4: ИспользованиеatoiиatofФункция

Пример

#include <iostream>
#include <cstdlib>

int main() {
    std::string str1 = "123";
    std::string str2 = "456.78";

    int num1 = std::atoi(str1.c_str()); // Преобразовать строку в целое число
    double num2 = std::atof(str2.c_str()); // Преобразовать строку в число с плавающей точкой

    std::cout << "Целое: " << num1 << std::endl;
    std::cout << "С плавающей точкой: " << num2 << std::endl;
    return 0;
}

Результат вывода:

Integer: 123
Float: 456.78

Пример 5: ИспользованиеrandиsrandФункция

Пример

#include <cstdlib>
#include <iostream>
#include <ctime>

int main() {
    std::srand(std::time(nullptr));  // Использовать текущее время как начальное значение для генератора случайных чисел
    for (int i = 0; i < 5; ++i) {
        std::cout << std::rand() % 100 << " ";  // Сгенерировать случайное число от 0 до 99
    }
    std::cout << std::endl;

    return 0;
}

Результат вывода:

53 22 62 68 62 
Другие расширения