Kā salīdzināt divas virknes C programmēšanas valodā

Autors: William Ramirez
Radīšanas Datums: 18 Septembris 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
C_68 C program to Compare two Strings | with strcmp() and without strcmp() function
Video: C_68 C program to Compare two Strings | with strcmp() and without strcmp() function

Saturs

C kodā ir diezgan bieži salīdzināt virkņu garumus, lai noskaidrotu, kura virkne satur vairāk rakstzīmju. Tas ir noderīgi datu kārtošanai. Stīgu salīdzināšanai nepieciešama īpaša funkcija - nelietojiet != vai ==.

Soļi

  1. 1 C programmēšanas valodā ir divas funkcijas, kuras varat izmantot, lai salīdzinātu virkņu garumus. Abas šīs funkcijas ir iekļautas bibliotēkā virkne.h>.
    • strcmp () - šī funkcija salīdzina divas virknes un atgriež rakstzīmju skaita starpību.
    • strncmp () - šī funkcija ir tāda pati kā strcmp () izņemot to, ka pirmais n rakstzīmes. Tas tiek uzskatīts par drošāku, jo tas novērš pārplūdes kļūmes.
  2. 2 Sāciet programmu ar nepieciešamajām bibliotēkām. Jums būs nepieciešamas bibliotēkas stdio.h> un virkne.h>kā arī citas bibliotēkas, kas nepieciešamas jūsu īpašajai programmai.

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

  3. 3 Ievadiet funkciju int. Tas atgriež veselu skaitli divu virkņu garuma salīdzināšanas rezultātā.

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

  4. 4 Nosakiet divas virknes, kuras vēlaties salīdzināt. Mūsu piemērā salīdzināsim divas tipa virknes char... Atgriežamo vērtību definējiet arī kā veselu skaitli.

    #include stdio.h> #include string.h> int main () {char * str1 = "ābols"; char * str2 = "oranžs"; int ret; }

  5. 5 Ievadiet salīdzināšanas funkciju. Mūsu piemērā mēs izmantosim šo funkciju strncmp ()... Tajā jums jāiestata izmērīto rakstzīmju skaits.

    #include stdio.h> #include string.h> int main () {char * str1 = "ābols"; char * str2 = "oranžs"; int ret; ret = strncmp (str1, str2, 8); / * Salīdzina divas virknes, kuru garums nepārsniedz 8 rakstzīmes * /}

  6. 6 Ievadiet nosacījuma paziņojumu Ja... Citādi. Tas ir nepieciešams, lai parādītu, kura rinda ir garāka. Funkcija strncmp () atgriezīs numuru 0ja virkņu garums ir vienāds, pozitīvs skaitlis, ja str1 ir garāks, un negatīvs skaitlis, ja str2 ir garāks.

    #include stdio.h> #include string.h> int main () {char * str1 = "ābols"; char * str2 = "oranžs"; int ret; ret = strncmp (str1, str2, 8); ja (ret> 0) {printf ("str1 ir garāks"); } cits if (ret 0) {printf ("str2 ir garāks"); } else {printf ("Līniju garums ir vienāds"); } atgriešanās (0); }

Brīdinājumi

  • Atcerieties, ka, ja virkņu garums ir vienāds, vērtība tiks atgriezta 0. Tas var radīt neskaidrības, jo arī 0 ir FALSE.