In questa lezione studieremo alcune funzioni della libreria string.h in C ed in particolare le funzioni strcmp(), strcpy(), strcat(), strncmp(), strncpy(), strncat().
Affronteremo dunque un esempio dove confronteremo due stringhe inserite nel programma.
Fondamenti solidi di programmazione
Impara le basi della programmazione in C in modo semplice, pratico ed efficace. Variabili, cicli, funzioni, logica e algoritmi.
- ⏱️ 9 ore di corso registrato
- 🧩 Più di 50 algoritmi risolti passo passo
- 🎯 Livello base
- 💻 100% online, fruibile quando vuoi
Le stringhe prese in esame, solo a scopo dimostrativo, sono 'Coding creativo' e 'www.codingcreativo.it'.
Non hanno lunghezza uguale ma chiaramente la seconda stringa è più lunga della prima.
Ecco quindi il codice completo utilizzando strcmp della libreria string.h in C:
#include<stdio.h>
#include <string.h>
int main() {
char coding[40]="Coding creativo ";
char sito[40]="www.codingcreativo.it";
int x;
if ((x=strcmp(coding,sito))==0)
printf("sono uguali");
else if(x>0)
printf("la prima e' maggiore della prima");
else
printf("la seconda e' maggiore della prima");
return 0;
}
L'esempio sopra mi restituirà un numero negativo, quindi visualizzerà: 'la seconda è maggiore della prima'. La relazione d'ordine tra le stringhe è definita chiaramente dalla relazione d'ordine della codifica ASCII dei caratteri che la compongono:
'0' < '9' < 'A' < 'Z' < 'a' < 'z'
Funzione strncmp
La funzione strncmp(stringa1,stringa2,n); confronta invece solo i primi n caratteri.
Questa funzione si comporta come la strcmp.
Esempio sulla funzione strncmp
Ecco dunque un semplice esempio d'uso della funzione strncmp della libreria string.h in C:
#include<stdio.h>
#include <string.h>
int main() {
char coding[40]="Coding creativo ";
char sito[40]="Coding";
int x;
if ((x=strncmp(coding,sito,6))==0)
printf("sono uguali");
else if(x>0)
printf("la prima e' maggiore");
else
printf("la seconda e' maggiore");
return 0;
}
In questo caso viene restituito zero perché confronta solo i primi 6 caratteri delle due stringhe che sono uguali. Quindi verrà visualizzato in output il messaggio: 'sono uguali'.
Funzione strcpy della libreria string.h in C
Questa funzione consente di copiare stringa2 su stringa1 e la sintassi è dunque questa:
strcpy(stringa1,stringa2);
Esempio sulla funzione strcpy
Ecco dunque un semplice esempio:
#include<stdio.h>
#include <string.h>
int main() {
char coding[40]="Coding creativo ";
char sito[40];
strcpy(sito,coding);
printf("%s", sito);
return 0;
}
Come potete notare in questo programma la funzione strcpy copierà nella stringa sito il contenuto di coding.
Funzione strncpy
La funzione strncpy(stringa1, stringa2, n); copierà solo n caratteri di stringa2 su stringa1.
Esempio sulla funzione strncpy
Ecco dunque un semplice esempio:
#include<stdio.h>
#include <string.h>
int main() {
char coding[40]="Coding creativo ";
char sito[40];
strncpy(sito,coding,6);
printf("%s", sito);
return 0;
}
Funzione strcat della libreria string.h in C
La funzione strcat(stringa1,strinaga2); come possiamo facilmente intuire, concatenerà le due stringhe.
Esempio sulla funzione strcat
Ecco quindi un semplice esempio di come concatenare due stringhe:
#include<stdio.h>
#include <string.h>
int main() {
char coding[60]="Coding creativo, ";
char sito[23]="www.codingcreativo.it";
strcat(coding,sito);
printf("%s", coding);
return 0;
}
In questo caso verrà visualizzato in output:
'Coding creativo, www.codingcreativo.it'
Funzione strncat della libreria string.h in C
L'ultima funzione che vederemo oggi è la funzione strncat(stringa1,stringa2,n) che copierà solo n caratteri della stringa2 sulla stringa1.
Esempio sulla funzione strcat
Ecco quindi un semplice esempio:
#include<stdio.h>
#include <string.h>
int main() {
char coding[18]="Coding creativo, ";
char sito[60]="www.codingcreativo.it";
strncat(sito,coding,6);
printf("%s", sito);
return 0;
}
In questo esempio si visualizzerà dunque in output:
'www.codingcreativo.it coding'
Conclusioni
In questa lezione abbiamo visto un esempio di applicazione di string.h e delle sue funzioni, nelle prossime lezione parleremo ancora di questa libreria.
Alcuni link utili
Indice tutorial linguaggio C
Ricerca di un elemento in una matrice
Come fare il prodotto tra matrici
Array o vettori in linguaggio C
Selection sort in C
Merge sort in C
Insertion Sort in C