Cum să comparați două rânduri în limba de programare c
În codurile de software scrise în C, destul de des comparați lungimile șirului pentru a afla ce linie conține mai multe caractere. Acest lucru este util pentru sortarea datelor. Pentru a compara și caracterele, este necesară o funcție specială - nu utilizați != sau ==.
Pași
unu. Limba de programare cu include două funcții cu care puteți compara lungimile șirului. Ambele funcții sunt incluse în bibliotecă .
- Strcmp () - Această caracteristică compară două linii și returnează diferența în numărul de caractere.
- STRNCMP () - Această caracteristică este similară cu funcția Strcmp () Cu excepția faptului că primul este comparat N Simboluri. Este considerat mai sigur, deoarece evită eșecurile din cauza depășirilor.
2. Porniți programul de la bibliotecile necesare. Veți avea nevoie de biblioteci și , precum și orice alte biblioteci necesare pentru programul dvs. specific.
#Include[[Imagine: Comparați două șiruri în programări C Pasul 1 Versiunea 4.JPG | Center]] # includ
3. Introduceți o caracteristică Int. Acesta returnează un număr întreg ca rezultat al comparării lungimii a două linii.
[Imagine: Comparați două șiruri de caractere în Programarea C Pasul 2 Versiunea 4.JPG | Center]] # includ[[Imagine: Comparați două șiruri de caractere în Pasul 3 Versiunea 3.JPG | Center]] # includ Int Principal () {}
4. Determinați cele două linii pe care doriți să le comparați. În exemplul nostru, comparăm două rânduri cu tipul Char. Definiți, de asemenea, valoarea de returnare ca un număr întreg.
[[Imagine: Comparați două șiruri în programări C Pasul 4 Versiunea 4.JPG | Center]] # includ[[Imagine: Comparați două șiruri în C de programare C Pasul 5 Versiunea 4.JPG | Center]] # includ Int Principal () {char * str1 = "măr"-Char * str2 = "portocale"-Int ret-}
cinci. Introduceți funcția de comparare. În exemplul nostru, folosim funcția STRNCMP (). Trebuie să seteze numărul de caractere măsurate.
[[Imagine: Comparați două șiruri de caractere în C de programare Pasul 6 Versiunea 4.JPG | Center]] # includ#Include Int Principal () {char * str1 = "măr"-Char * str2 = "portocale"-Int ret-ret = STRNMP (str1, str2, 8) - / * comparați două linii, lungimea căreia nu depășește 8 caractere * /}
6. Introduceți un operator condiționat Dacă ... Altfel. Este necesar să se arate ce șir este mai lung. Funcţie STRNCMP () Returnați numărul 0, Dacă corzile sunt aceleași, un număr pozitiv, dacă STR1 este mai lung și un număr negativ dacă STR2 este mai lung.
#Include#Include Int Principal () {char * str1 = "măr"-Char * str2 = "portocale"-Int ret-ret = STRNMP (str1, str2, 8) -af (ret> 0) {Printf ("Str1 este mai lungă") - altfel dacă (ret < 0){printf("str2 длиннее")-}else{printf("Длины строк равны")-}return(0)-}
Avertizări
- Amintiți-vă că, dacă lungimile șirului sunt egale, valoarea lui 0 se va întoarce. Vă poate confunda pentru că 0 este, de asemenea, valoarea falsă (falsă).