.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright 2020 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 18:08:52 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified 2001-08-31, aeb .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH strcmp 3 "20 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME strcmp, strncmp \- compară două șiruri .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBint strcmp(const char *\fP\fIs1\fP\fB, const char *\fP\fIs2\fP\fB);\fP \fBint strncmp(const char \fP\fIs1\fP\fB[.\fP\fIn\fP\fB], const char \fP\fIs2\fP\fB[.\fP\fIn\fP\fB], size_t \fP\fIn\fP\fB);\fP .fi .SH DESCRIERE Funcția \fBstrcmp\fP() compară cele două șiruri \fIs1\fP și \fIs2\fP. Nu se ia în considerare locația (pentru o comparație care ține cont de locație, a se vedea \fBstrcoll\fP(3)). Comparația se face folosind caractere fără semn. .PP \fBstrcmp\fP() returnează un număr întreg care indică rezultatul comparației, după cum urmează: .IP \[bu] 3 0, în cazul în care \fIs1\fP și \fIs2\fP sunt egale; .IP \[bu] o valoare negativă dacă \fIs1\fP este mai mic decât \fIs2\fP; .IP \[bu] o valoare pozitivă dacă \fIs1\fP este mai mare decât \fIs2\fP. .PP 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. .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 .sp 1 .SH VERSIUNI POSIX.1 specifică doar că: .RS .PP 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 .PP Î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(): .PP .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]\e0\[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 este mai mare decât (7) $ .\fB/string_comp $\[aq]\e201\[aq] A\fP # 0201 \- 0101 = 0100 (sau 64 zecimal) este mai mare decât (64) .EE .in .PP 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. .PP Și apoi câteva exemple folosind \fBstrncmp\fP(): .PP .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 []\en", 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\en", atoi(argv[3])); printf("\en"); } else if (res < 0) { printf(" este mai mic decât (%d)\en", res); } else { printf(" este mai mare decât (%d)\en", res); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBmemcmp\fP(3), \fBstrcasecmp\fP(3), \fBstrcoll\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 .