.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993, David Metcalfe .\" Copyright 2020, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH strcmp 3 "16 martie 2026" "Pagini de manual de Linux 6.18" .SH NUME strcmp, strncmp \- compară două șiruri .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBint strcmp(const char *\fP\fIs1\fP\fB, const char *\fP\fIs2\fP\fB);\fP \fBint strncmp(const char \fPs1\fB[], const char \fPs2\fB[], size_t \fPn\fB);\fP .fi .SH DESCRIERE .TP \fBstrcmp\fP() Funcția \fBstrcmp\fP() compară cele două șiruri \fIs1\fP și \fIs2\fP, ca și cum s\-ar apela \fBmemcmp\fP(3). .IP Configurația regională nu este luată în considerare (pentru o comparație care ține cont de configurația regională, consultați \fBstrcoll\fP(3)). .IP Aceasta este echivalent cu .IP .in +4n .EX memcmp(s1, s2, MIN(strlen(s1),strlen(s2))+1) .EE .in .TP \fBstrncmp\fP() Funcția \fBstrncmp\fP() este similară, cu excepția faptului că aceasta compară numai primii (cel mult) \fIn\fP octeți din \fIs1\fP și \fIs2\fP. .IP Aceasta este echivalent cu .IP .in +4n .EX memcmp(s1, s2, MIN(MIN(strnlen(s1,n),strnlen(s2,n))+1, n)) .EE .in .SH "VALOAREA RETURNATĂ" Funcțiile \fBstrcmp\fP() și \fBstrncmp\fP() returnează un număr întreg mai mic, egal sau mai mare decât zero dacă se constată că \fIs1\fP (sau primii \fIn\fP octeți ai acestuia) este mai mic decât, se potrivește sau este mai mare decât \fIs2\fP. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBstrcmp\fP(), \fBstrncmp\fP() T} Siguranța firelor MT\-Safe .TE .SH VERSIUNI POSIX.1 specifică doar că: .RS .P Semnul unei valori de returnare diferită de zero este determinat de semnul diferenței dintre valorile primei perechi de octeți (ambele interpretate ca fiind de tip \fIunsigned char\fP) care diferă în șirurile comparate. .RE .P În glibc, ca și în majoritatea celorlalte implementări, valoarea de returnare este rezultatul aritmetic al scăderii ultimului octet comparat din \fIs2\fP din ultimul octet comparat din \fIs1\fP; (dacă cele două caractere sunt egale, această diferență este 0). .SH STANDARDE C11, POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001, C89, SVr4, 4.3BSD. .SH EXEMPLE Programul de mai jos poate fi utilizat pentru a demonstra funcționarea lui \fBstrcmp\fP() (atunci când i se dau două argumente) și \fBstrncmp\fP() (atunci când i se dau trei argumente). Mai întâi, câteva exemple care utilizează \fBstrcmp\fP(): .P .in +4n .EX $\fB ./string_comp ABC ABC\fP; și sunt egale $\fB ./string_comp ABC AB\fP; # codul ASCII de \[aq]C\[aq] este 67; \[aq]C\[aq] \- \[aq]\[rs]0\[aq] = 67 este mai mare decât (67) $\fB ./string_comp ABA ABZ\fP; # codul ASCII de \[aq]A\[aq] este 65; codul ASCII de \[aq]Z\[aq] este 90 este mai mic decât (\-25) $\fB ./string_comp ABJ ABC\fP;\n este mai mare decât (7) $\fB ./string_comp $\[aq]\[rs]201\[aq] A\fP; # 0201 \- 0101 = 0100 (sau 64 zecimal) este mai mare decât (64) .EE .in .P Ultimul exemplu utilizează o sintaxă specifică \fBbash\fP(1) pentru a produce un șir care conține un cod ASCII pe 8 biți; rezultatul demonstrează că această comparare a șirurilor utilizează caractere fără semn. .P Și apoi câteva exemple folosind \fBstrncmp\fP(): .P .in +4n .EX $\fB ./string_comp ABC AB 3\fP; este mai mare decât (67) $\fB ./string_comp ABC AB 2\fP; și sunt egale în primii 2 octeți .EE .in .SS "Sursa programului" .\" SRC BEGIN (string_comp.c) \& .EX /* string_comp.c \& Licențiat sub licența publică generală GNU v2 sau o versiune ulterioară. */ #include #include #include \& int main(int argc, char *argv[]) { int res; \& if (argc < 3) { fprintf(stderr, "Utilizare: %s []\[rs]n", argv[0]); exit(EXIT_FAILURE); } \& if (argc == 3) res = strcmp(argv[1], argv[2]); else res = strncmp(argv[1], argv[2], atoi(argv[3])); \& if (res == 0) { printf(" și sunt egale"); if (argc > 3) printf(" în primii %d octeți\[rs]n", atoi(argv[3])); printf("\[rs]n"); } else if (res < 0) { printf(" este mai mic decât (%d)\[rs]n", res); } else { printf(" este mai mare decât (%d)\[rs]n", res); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBmemcmp\fP(3), \fBstrcasecmp\fP(3), \fBstrcoll\fP(3), \fBstreq\fP(3), \fBstring\fP(3), \fBstrncasecmp\fP(3), \fBstrverscmp\fP(3), \fBwcscmp\fP(3), \fBwcsncmp\fP(3), \fBascii\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .