strverscmp(3)

NUME
strverscmp - compară două șiruri de versiuni

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#define _GNU_SOURCE         /* Consultați feature_test_macros(7) */
#include <string.h>

int strverscmp(const char *s1, const char *s2);

DESCRIERE
Pentru un set de date precum jan1, jan2, ..., jan9, jan10, ..., sortarea lexicografică dă jan1, jan10, ..., jan2, ..., jan9. Sarcina funcției strverscmp() este de a compara două șiruri de caractere, obținând prima ordine, în timp ce strcmp(3) găsește doar ordinea lexicografică. Această funcție nu utilizează categoria LC_COLLATE a configurației regionale, deci este destinată mai ales situațiilor în care se așteaptă ca șirurile să fie în ASCII. Aceasta este diferită de ordinea produsă de sort(1) -V.

Această funcție face următoarele. Dacă ambele șiruri de caractere sunt egale, se returnează 0. În caz contrar, găsește poziția dintre doi octeți care are proprietatea că înainte de ea ambele șiruri sunt egale, în timp ce imediat după ea există o diferență. Găsește cele mai mari șiruri de cifre consecutive care conțin (sau care încep sau se termină la) această poziție. Dacă una sau ambele sunt goale, atunci se returnează ceea ce ar fi returnat strcmp(3) (ordonarea numerică a valorilor octeților). În caz contrar, se compară ambele șiruri de cifre din punct de vedere numeric, unde șirurile de cifre cu unul sau mai multe zerouri de început sunt interpretate ca și cum ar avea o virgulă în față (astfel încât, în special, șirurile de cifre cu mai multe zerouri de început vin înaintea șirurilor de cifre cu mai puține zerouri de început). Astfel, ordinea este 000, 00, 01, 010, 09, 0, 1, 9, 10.

VALOAREA RETURNATĂ
Funcția strverscmp() returnează un număr întreg mai mic, egal sau mai mare decât zero dacă se constată că s1 este mai înainte, egal sau ulterior lui s2.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
strverscmp() | Siguranța firelor | MT-Safe

STANDARDE
GNU.

EXEMPLE
Programul de mai jos poate fi utilizat pentru a demonstra comportamentul lui strverscmp(). Acesta utilizează strverscmp() pentru a compara cele două șiruri de caractere date ca argumente în linia de comandă. Un exemplu de utilizare a acestuia este următorul:

    $ ./a.out jan1 jan10;
    jan1 < jan10

  Sursa programului
    #define _GNU_SOURCE
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int
    main(int argc, char *argv[])
    {
        int res;

        if (argc != 3) {
            fprintf(stderr, "Utilizare: %s <string1> <string2>\n", argv[0]);
            exit(EXIT_FAILURE);
        }

        res = strverscmp(argv[1], argv[2]);

        printf("%s %s %s\n", argv[1],
               (res < 0) ? "<" : (res == 0) ? "==" : ">", argv[2]);

        exit(EXIT_SUCCESS);
    }

CONSULTAȚI ȘI
rename(1), strcasecmp(3), strcmp(3), strcoll(3)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.