Hogyan lehet összehasonlítani két sor a programozási nyelv c
A C-ben írt szoftverkódokban gyakran hasonlítják össze a karakterlánc hosszát, hogy megtudja, melyik vonal több karaktert tartalmaz. Ez hasznos az adatok rendezéséhez. A húrok összehasonlításához különleges funkció szükséges - Ne használja != vagy ==.
Lépések
egy. A programozási nyelv két funkcióval rendelkezik, amellyel összehasonlíthatja a karakterlánc hosszát. Mindkét funkció szerepel a könyvtárban .
- Strcmp () - Ez a funkció két vonalat hasonlítható össze, és visszaadja a különbséget a karakterek számában.
- Strncmp () - Ez a funkció hasonló a funkcióhoz Strcmp () Kivéve, hogy az első összehasonlítás N Szimbólumok. Biztonságosabbnak tartják, mert elkerüli a túlcsordulások okozta kudarcokat.
2. Indítsa el a programot a szükséges könyvtárakból. Szüksége lesz könyvtárakra és , valamint az egyedi programhoz szükséges egyéb könyvtárak.
#Inlude[[Kép: hasonlítsa össze a két húrot a C programozási lépés 1 verzió 4.jpg | center]] # tartalmazza
3. Adjon meg egy funkciót Int. A két vonal hosszának összehasonlításának eredményeképpen ad vissza egész számot.
[Image: Hasonlítsa össze a két húrot a C programozási lépésben 2. Version 4.jpg | center]] # tartalmazza[[Kép: hasonlítsa össze a két húrot C programozási lépés 3-as verzió 3.jpg | center]] # tartalmazza Int Main () {}
4. Határozza meg a összehasonlítani kívánt két vonalat. Példánkban két sorot hasonlítunk össze a típusával Char. Határozza meg a visszatérési értéket egész számként.
[[Kép: Hasonlítsa össze a két húrot a C programozási lépés 4 verzió 4.jpg | center]] # tartalmazza[[Kép: hasonlítsa össze a két húrot a C programozási lépés 5 verzió 4.jpg | center]] # tartalmazza Int Main () {char * str1 = "alma"-Char * str2 = "narancssárga"-Int ret-}
öt. Adja meg az összehasonlító funkciót. Példánkban a funkciót használjuk Strncmp (). Be kell állítania a mért karakterek számát.
[[Kép: Hasonlítsa össze a két húrot a C programozási lépésben 6. Version 4.jpg | center]] # tartalmazza#Inlude Int Main () {char * str1 = "alma"-Char * str2 = "narancssárga"-INT RET-RET = STRNCMP (STR1, STR2, 8) - / * Két vonal összehasonlítása, amelynek hossza nem haladja meg a 8 karaktert * /}
6. Adjon meg egy feltételes operátort Ha ... MÁS. Meg kell mutatni, hogy a karakterlánc hosszabb legyen. Funkció Strncmp () Visszaadja a számot 0, Ha a húrok azonosak, pozitív szám, ha az STR1 hosszabb, és negatív szám, ha az STR2 hosszabb.
#Inlude#Inlude Int Main () {char * str1 = "alma"-Char * str2 = "narancssárga"-INT RET-RET = STRNCMP (STR1, STR2, 8) -HIF (RET> 0) {printf ("STR1 hosszabb") -} egyébként, ha (ret < 0){printf("str2 длиннее")-}else{printf("Длины строк равны")-}return(0)-}
Figyelmeztetések
- Ne feledje, hogy ha a string hossza egyenlő, akkor a 0 érték visszatér. Megzavarhatja Önt, mert a 0 a FALSE (FALSE) értéke is.