![Stringhe Programmazione C lez#15](https://i.ytimg.com/vi/NuaiNixbOiE/hqdefault.jpg)
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 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 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 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 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 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 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.