Kaip palyginti dvi eilutes C programavimo kalba

Autorius: William Ramirez
Kūrybos Data: 18 Rugsėjo Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
Compare two files contents using the C Programming
Video.: Compare two files contents using the C Programming

Turinys

C kode gana įprasta lyginti eilučių ilgius ir sužinoti, kurioje eilutėje yra daugiau simbolių. Tai naudinga renkant duomenis. Norint palyginti stygas, reikalinga speciali funkcija - nenaudokite != arba ==.

Žingsniai

  1. 1 C programavimo kalba apima dvi funkcijas, kuriomis galite palyginti eilutės ilgį. Abi šios funkcijos yra įtrauktos į biblioteką eilutė.h>.
    • strcmp () - ši funkcija lygina dvi eilutes ir grąžina simbolių skaičiaus skirtumą.
    • strncmp () - ši funkcija yra tokia pati kaip strcmp () išskyrus tai, kad pirmasis n personažai. Jis laikomas saugesniu, nes išvengia perpildymo gedimų.
  2. 2 Paleiskite programą su reikiamomis bibliotekomis. Jums reikės bibliotekų stdio.h> ir eilutė.h>taip pat bet kurios kitos bibliotekos, reikalingos jūsų konkrečiai programai.

    #include stdio.h> #include string.h>

  3. 3 Įveskite funkciją tarpt. Palyginus dviejų eilučių ilgį, jis pateikia sveiką skaičių.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Nustatykite dvi eilutes, kurias norite palyginti. Mūsų pavyzdyje palyginkime dvi tipo eilutes anglis... Taip pat apibrėžkite grąžinimo vertę kaip sveiką skaičių.

    #include stdio.h> #include string.h> int main () {char * str1 = "obuolys"; char * str2 = "oranžinė"; int ret; }

  5. 5 Įveskite palyginimo funkciją. Mūsų pavyzdyje naudosime šią funkciją strncmp ()... Jame turite nustatyti išmatuotų simbolių skaičių.

    #include stdio.h> #include string.h> int main () {char * str1 = "obuolys"; char * str2 = "oranžinė"; int ret; ret = strncmp (str1, str2, 8); / * Palyginamos dvi iki 8 simbolių ilgio eilutės * /}

  6. 6 Įveskite sąlyginį teiginį Jei... Kitas. Reikia parodyti, kuri eilutė ilgesnė. Funkcija strncmp () grąžins numerį 0jei eilučių ilgiai yra vienodi, teigiamas skaičius, jei str1 yra ilgesnis, ir neigiamas skaičius, jei str2 yra ilgesnis.

    #include stdio.h> #include string.h> int main () {char * str1 = "obuolys"; char * str2 = "oranžinė"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 ilgesnis"); } else if (ret 0) {printf ("str2 yra ilgesnis"); } else {printf ("Eilučių ilgiai yra lygūs"); } return (0); }

Įspėjimai

  • Atminkite, kad jei eilučių ilgiai yra vienodi, grąžinama vertė 0. Tai gali būti painu, nes 0 taip pat yra NETEISINGAS.