Come confrontare due stringhe nel linguaggio di programmazione C

Autore: William Ramirez
Data Della Creazione: 18 Settembre 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
Stringhe Programmazione C lez#15
Video: Stringhe Programmazione C lez#15

Contenuto

È abbastanza comune nel codice C confrontare le lunghezze delle stringhe per scoprire quale stringa contiene più caratteri. Questo è utile per ordinare i dati. È necessaria una funzione speciale per confrontare le stringhe - non usare != o ==.

Passi

  1. 1 Il linguaggio di programmazione C include due funzioni che è possibile utilizzare per confrontare le lunghezze delle stringhe. Entrambe queste funzioni sono incluse nella libreria stringa.h>.
    • strmp() - questa funzione confronta due stringhe e restituisce la differenza nel numero di caratteri.
    • strncmp() - questa funzione è la stessa di strmp() tranne che il primo n caratteri. È considerato più sicuro perché evita errori di overflow.
  2. 2 Avviare il programma con le librerie richieste. Avrai bisogno di librerie stdio.h> e stringa.h>così come qualsiasi altra libreria richiesta per il tuo programma specifico.

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

  3. 3 Inserisci la funzione int. Restituisce un intero come risultato del confronto della lunghezza di due stringhe.

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

  4. 4 Identifica le due stringhe che vuoi confrontare. Nel nostro esempio, confrontiamo due stringhe di tipo char... Definire anche il valore restituito come numero intero.

    #include stdio.h> #include string.h> int main () {char * str1 = "mela"; char * str2 = "arancione"; int ret; }

  5. 5 Inserisci una funzione di confronto. Nel nostro esempio, useremo la funzione strncmp()... In esso è necessario impostare il numero di caratteri misurati.

    #include stdio.h> #include string.h> int main () {char * str1 = "mela"; char * str2 = "arancione"; int ret; ret = strncmp (str1, str2, 8); / * Confronta due stringhe lunghe fino a 8 caratteri * /}

  6. 6 Inserisci una dichiarazione condizionale Se... Altro. È necessario per mostrare quale linea è più lunga. Funzione strncmp() restituirà il numero 0se le lunghezze delle stringhe sono uguali, un numero positivo se str1 è più lungo e un numero negativo se str2 è più lungo.

    #include stdio.h> #include string.h> int main () {char * str1 = "mela"; char * str2 = "arancione"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 è più lungo"); } else if (ret 0) {printf ("str2 è più lungo"); } else {printf ("Le lunghezze delle righe sono uguali"); } ritorno (0); }

Avvertenze

  • Ricorda che se le lunghezze delle stringhe sono uguali, verrà restituito il valore 0. Questo può creare confusione perché 0 è anche FALSE.