C-Standardbibliothek -<stdlib.h>

Einführung

stdlib .hDie Header-Datei definiert vier Variablentypen, einige Makros und verschiedene allgemeine Hilfsfunktionen.

<stdlib.h>ist eine Header-Datei in der C-Standardbibliothek, die viele allgemeine Hilfsfunktionen bereitstellt, einschließlich Speicherzuweisung, Prozesssteuerung, Sortieren und Suchen sowie Zeichenkettenkonvertierung, unter anderem.

Bibliotheksvariablen

Die folgenden Variablentypen sind in der Header-Datei stdlib.h definiert:

Laufende NummerVariablen & Beschreibung
1size_t
Dies ist ein vorzeichenloser Ganzzahltyp, der das Ergebnis des Schlüsselwortssizeofist.
2wchar_t
Dies ist ein Ganzzahltyp für die Größe einer Breitzeichenkonstante.
3div_t
Dies ist die Struktur, die von der Funktiondivzurückgegeben wird.
4ldiv_t
Dies ist die Struktur, die von der Funktionldivzurückgegeben wird.

Bibliotheksmakros

Die folgenden Makros sind in der Headerdatei stdlib.h definiert:

Laufende NummerMakros & Beschreibung
1NULL
Dieses Makro ist der Wert einer Nullzeigerkonstante.
2EXIT_FAILURE
Dies ist der Wert, der zurückgegeben werden soll, wenn die Funktion exit fehlschlägt.
3EXIT_SUCCESS
Dies ist der Wert, der zurückgegeben werden soll, wenn die Funktion exit erfolgreich ist.
4RAND_MAX
这个宏是 rand 函数返回的最大值。
5MB_CUR_MAX
这个宏表示多字节字符集中的最大字符数,它不能大于 MB_LEN_MAX.

Bibliotheksfunktionen

以下是头文件 stdlib.h 中定义的函数:

Laufende NummerFunktionen & Beschreibung
1double atof(const char *str)
把参数str所指向的字符串转换为浮点数(double 类型)。
2int atoi(const char *str)
把参数str所指向的字符串转换为整数(int 类型)。
3long int atol(const char *str)
把参数str所指向的字符串转换为长整数(long int 类型)。
4double strtod(const char *str, char **endptr)
把参数str所指向的字符串转换为浮点数(double 类型)。
5long int strtol(const char *str, char **endptr, int base)
把参数str所指向的字符串转换为长整数(long int 类型)。
6unsigned long int strtoul(const char *str, char **endptr, int base)
Übergeben Sie den ParameterstrKonvertiert die Zeichenkette, auf die gezeigt wird, in eine vorzeichenlose lange Ganzzahl (vom Typ unsigned long int).
7void *calloc(size_t nitems, size_t size)
Weist den erforderlichen Speicherplatz zu und gibt einen Zeiger darauf zurück.
8void free(void *ptr)
Vor dem Freigeben aufrufencalloc、mallocoderreallocden zugewiesenen Speicherplatz.
9void *malloc(size_t size)
Weist den erforderlichen Speicherplatz zu und gibt einen Zeiger darauf zurück.
10void *realloc(void *ptr, size_t size)
Vor dem Versuch, die Größe zu ändern, aufrufenmallocodercallocdie Größe des zugewiesenen Speicherblocks, auf den ptr zeigt.
11void abort(void)
Verursacht einen abnormalen Programmabbruch.
12int atexit(void (*func)(void))
Ruft die angegebene Funktion auf, wenn das Programm normal beendet wird.func。
13void exit(int status)
Bewirkt, dass das Programm normal beendet wird.
14char *getenv(const char *name)
Sucht nach der Umgebungszeichenkette, auf die name zeigt, und gibt den zugehörigen Wert als Zeichenkette zurück.
15int system(const char *string)
Der durch string angegebene Befehl wird an die Hostumgebung zur Ausführung durch den Befehlsprozessor übergeben.
16void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))
Führt eine binäre Suche durch.
17void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
Sortiert das Array.
18int abs(int x)
Gibt den Absolutbetrag von x zurück.
19div_t div(int numer, int denom)
Dividiert den Zähler durch den Nenner.
20long int labs(long int x)
Gibt den Absolutbetrag von x zurück.
21ldiv_t ldiv(long int numer, long int denom)
Dividiert den Zähler durch den Nenner.
22int rand(void)
Gibt einen Bereich von 0 bisRAND_MAXeine Pseudozufallszahl dazwischen zurück.
23void srand(unsigned int seed)
Diese Funktion initialisiert den Zufallszahlengenerator, der von der Funktionrandverwendet wird.
24int mblen(const char *str, size_t n)
RückgabeparameterstrDie Länge des Multibyte-Zeichens, auf das gezeigt wird.
25size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)
Übergibt den ParameterstrDie Multibyte-Zeichenkette, auf die gezeigt wird, wird in Parameter umgewandelt.pwcsDas Array, auf das sie zeigt.
26int mbtowc(wchar_t *pwc, const char *str, size_t n)
Parameter prüfenstrDas Multibyte-Zeichen, auf das gezeigt wird.
27size_t wcstombs(char *str, const wchar_t *pwcs, size_t n)
Setze das ArraypwcsDie darin gespeicherte Kodierung wird in Multibyte-Zeichen umgewandelt und in der ZeichenkettestrIn.
28int wctomb(char *str, wchar_t wchar)
Prüft den ParameterwcharDie Kodierung des angegebenen Multibyte-Zeichens.

Beispiel

Das Folgende verwendet<stdlib.h>Beispiele für einige Funktionen in.

Dynamische Speicherzuweisung:

Beispiel

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *array = (int*)malloc(10 * sizeof(int));
    if (array == NULL) {
        perror("Speicherzuweisung fehlgeschlagen");
        return 1;
    }

    for (int i = 0; i < 10; i++) {
        array[i] = i;
        printf("%d ", array[i]);
    }
    printf("\n");

    free(array);
    return 0;
}

Erzeugung von Pseudozufallszahlen:

Beispiel

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL));
    for (int i = 0; i < 10; i++) {
        printf("%d ", rand() % 100);
    }
    printf("\n");

    return 0;
}

Zeichenkettenkonvertierung:

Beispiel

#include <stdio.h>
#include <stdlib.h>

int main() {
    const char *str = "12345";
    int num = atoi(str);
    printf("Der Ganzzahlwert ist %d\n", num);

    return 0;
}

Quicksort:

Beispiel

#include <stdio.h>
#include <stdlib.h>

int compare(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}

int main() {
    int array[] = {5, 2, 9, 1, 5, 6};
    int size = sizeof(array⟦⟧sizeof) / sizeof(array[0]);

    qsort(array, size, sizeof(int), compare);

    for (int i = 0; i < size; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");

    return 0;
}

Hinweise

  • Nutzungmalloc、callocundreallocDer zugewiesene Speicher muss freigegeben werden mitfreeum Speicherlecks zu vermeiden.
  • atoi、atolundatofDie Funktion bietet keine Fehlerprüfung; stellen Sie bei der Verwendung sicher, dass das Eingabeformat korrekt ist. Es wird empfohlen,strtol、strtoulundstrtodsicherere Konvertierungen durchzuführen.
  • qsortundbsearchDie Funktion erfordert eine benutzerdefinierte Vergleichsfunktion, um unterschiedliche Datentypen und Sortieranforderungen zu behandeln.

Durch das Verstehen und Verwenden<stdlib.h>Die bereitgestellten Funktionen ermöglichen Operationen wie Speicherverwaltung, Prozesssteuerung, Zufallszahlengenerierung, Umgebungsverwaltung, mathematische Konvertierungen sowie Sortieren und Suchen in C-Programmen, wodurch das Schreiben flexiblerer und funktionsreicherer Programme ermöglicht wird.

Weitere Erweiterungen