![Hogyan lehet összehasonlítani két karakterláncot a C programozási nyelven - Társadalom Hogyan lehet összehasonlítani két karakterláncot a C programozási nyelven - Társadalom](https://a.vvvvvv.in.ua/society/kak-sravnit-dve-stroki-na-yazike-programmirovaniya-c-6.webp)
Tartalom
A C kódban meglehetősen gyakori, hogy összehasonlítja a karakterláncok hosszát, hogy megtudja, melyik karakterlánc tartalmaz több karaktert. Ez hasznos az adatok rendezéséhez. A karakterláncok összehasonlításához speciális funkcióra van szükség - ne használja != vagy ==.
Lépések
1 A C programozási nyelv két funkciót tartalmaz, amelyekkel összehasonlíthatja a karakterláncok hosszát. Mindkét funkció megtalálható a könyvtárban karakterlánc.h>.
- strcmp () - ez a függvény két karakterláncot hasonlít össze, és visszaadja a karakterek számának különbségét.
- strncmp () - ez a funkció ugyanaz, mint strcmp () csakhogy az első n karakterek. Biztonságosabbnak tekinthető, mert elkerüli a túlcsordulási hibákat.
2 Indítsa el a programot a szükséges könyvtárakkal. Szüksége lesz könyvtárakra stdio.h> és karakterlánc.h>valamint az adott programhoz szükséges egyéb könyvtárak.
#include stdio.h> #include string.h>
3 Enter funkció int. Két karakterlánc hosszának összehasonlításakor egész számot ad vissza.
#include stdio.h> #include string.h> int main () {}
4 Határozza meg az összehasonlítani kívánt két karakterláncot. Példánkban hasonlítsunk össze két típusú karakterláncot char... Határozza meg a visszatérési értéket is egész számként.
#include stdio.h> #include string.h> int main () {char * str1 = "alma"; char * str2 = "narancs"; int ret; }
5 Adjon meg összehasonlító függvényt. Példánkban a függvényt fogjuk használni strncmp ()... Ebben be kell állítania a mért karakterek számát.
#include stdio.h> #include string.h> int main () {char * str1 = "alma"; char * str2 = "narancs"; int ret; ret = strncmp (str1, str2, 8); / * Két, legfeljebb 8 karakter hosszú karakterláncot hasonlít össze * /}
6 Írjon be egy feltételes utasítást Ha... Más. Meg kell mutatni, melyik sor hosszabb. Funkció strncmp () visszaadja a számot 0ha a karakterláncok hossza megegyezik, pozitív szám, ha str1 hosszabb, és negatív szám, ha str2 hosszabb.
#include stdio.h> #include string.h> int main () {char * str1 = "alma"; char * str2 = "narancs"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 hosszabb"); } else if (ret 0) {printf ("str2 hosszabb"); } else {printf ("A sorok hossza egyenlő"); } return (0); }
Figyelmeztetések
- Ne feledje, hogy ha a karakterláncok hossza egyenlő, akkor a 0 értéket adja vissza. Ez zavaró lehet, mert a 0 is HAMIS.