libri-javascript-python

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.

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

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’

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