In questa lezione studieremo alcune funzioni della libreria string.h in C ed in particolare le funzioni strcmp(), strcpy(), strcat(), strncmp(), strncpy(), strncat().
Nella lezione precedente abbiamo visto degli esempi sulla concatenazione delle stringhe senza far uso delle funzioni di libreria.
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
Funzione strcmp della libreria string.h in C
La prima funzione che vedremo è la funzione strcmp(stringa1, stringa2).
Questa funzione restituirà zero se le stringhe sono identiche, altrimenti darà un numero positivo se la prima stringa è maggiore della seconda, altrimenti restituirà un valore negativo.
Esempio sulla funzione strcmp
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
Affronteremo dunque un esempio dove confronteremo due stringhe inserite nel programma.
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’
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
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’.
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
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.
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
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
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
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’
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
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
Ricerca di un elemento in una matrice
Come fare il prodotto tra matrici
Array o vettori in linguaggio C