Una stringa non è null’altro che un array di caratteri, ogni elemento è ordinato ed è possibile individuare il carattere mediante il suo indice. In ogni stringa c’è sempre un carattere finale ‘\0’ che indica il fine stringa, pertanto in una stringa da 20 elementi quelli utilizzabili effettivamente sono 19, in ogni caso,  i caratteri dopo il ‘\0’ non sono presi in considerazione.

Immagine correlata  https://www.tutorialspoint.com/c_standard_library/string_h.htm

 

Dichiarare una stringa. Per dichiarare una stringa si usa l’espressione:        char stringa [20];

La lunghezza effettiva di una stringa comunque dipende dalla posizione del carattere terminatore.

Assegnare un valore ad una stringa.         stringa=“la mia stringa”;

Impostare un carattere nella stringa.         stringa[0]=‘A’;

Calcolare la lunghezza di una stringa. Per calcolare la lunghezza di una stringa basta “scorrere” la stringa fino al carattere terminatore. Esempio:


int main() {
   int i=0;
   while (stringa[i]|=‘\0’) {
       i++;
       }
   printf(“La lunghezza è %d”, i);
}

 

Per copiare una stringa in un’altra occorre eseguire un ciclo su tutti gli elementi.

for (i = 0; i<DIM; i++)
       a[i] = b[i];

Libreria string.h.

In C esiste una libreria di funzioni che semplificano il lavoro sulle stringhe, questa libreria si invoca con la espressione:

#include<string.h>. 

Alcune funzioni importanti sono: 

  • strlen(char stringa[])                                        //restituisce la lunghezza di una stringa
  • strcpy(char stringa1[], char stringa2[])    //copia stringa1 in stringa2
  • strcat(char stringa1[], char stringa2[])     //accoda a stringa1 il contenuto di stringa2 
  • strcmp(char stringa1[], char stringa2[])  //confronta stringa1 e stringa2

Esempio: strlen (STRing LENght) calcolare la lunghezza di una stringa.

int main () {
   char s[10]=“ciao”;
   int l;
   l = strlen(p);
   printf(“La lunghezza della stringa è: %d”, l);
   return 0;
}

Esempio: strcpy (STRing CoPY) copia una stringa in un’altra.

int main () {
   char originale[10]=“casetta”;
   char copia[10];
   int l;

   strcpy(copia, originale);
   printf(“Il valore di destinazione è: %s”, copia);
   return 0;
}

Concatenare due stringhe: strcat. Con la funzione strcat si concatenano due stringhe, formandone una più grande. La stringa di destinazione deve poter contenere l’altra.

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

int main(){
     char fonte[50],destinazione[100];
     strcpy(destinazione, “Stringa iniziale “);
     strcpy(fonte, “Stringa da aggiungere “);
     strcat(destinazione, fonte);
     printf(“%s”,destinazione);
}

 

Gets e Puts effettuano l’input e l’output di stringhe, provate il seguente programma.

#include<stdio.h>

int main(){
     char s[50];

     printf(“Inserire una frase \n”);
     gets(s); // input di stringhe
    puts(s); // output di stringhe

}