Stringhe di caratteri In linguaggio C Stringhe Un

  • Slides: 12
Download presentation
Stringhe di caratteri In linguaggio C

Stringhe di caratteri In linguaggio C

Stringhe Un insieme di caratteri in sequenza forma una stringa Alcuni linguaggi definiscono per

Stringhe Un insieme di caratteri in sequenza forma una stringa Alcuni linguaggi definiscono per le stringhe uno specifico tipo di dato e offrono metodi specifici per gestire valori di quel tipo. Il linguaggio C non fornisce un tipo di dato specifico per le stringhe che vengono trattate come array di caratteri. char nome. Studente[10];

Le stringhe in C char nome. Scuola[]=“Itis” nome. Scuola 0 I 1 t 2

Le stringhe in C char nome. Scuola[]=“Itis” nome. Scuola 0 I 1 t 2 i 3 s 4 /0 Nell’esempio viene dichiarato l’array di caratteri nome. Scuola e inizializzato con il valore “Itis”. Il numero di elementi dell’array è determinato dalla lunghezza della stringa più 1. L’elemento in più è necessario al linguaggio per memorizzare il carattere terminatore di stringa: , conosciuto come il carattere null.

Un esempio

Un esempio

Inizializzazione

Inizializzazione

Stringhe e … caratteri Attenzione alla differenza tra le seguenti dichiarazioni con inizializzazione. char

Stringhe e … caratteri Attenzione alla differenza tra le seguenti dichiarazioni con inizializzazione. char nota = 'C'; che assegna alla variabile nota di tipo char il valore C char nota[] = "C"; che assegna all’array nota[] la stringa di due caratteri C Un carattere inserito tra apici singoli è trattato come un singolo carattere.

Selezione di un carattere … char nome. Scuola[] = ”Itis parma"; nome. Scuola[5] =

Selezione di un carattere … char nome. Scuola[] = ”Itis parma"; nome. Scuola[5] = ‘P’; L’assegnamento al sesto elemento di nome. Scuola del carattere P modifica la stringa che diviene “Itis Parma”. Il carattere terminatore consente di gestire le stringhe senza conoscerne a priori la dimensione.

Caratteri e codici ASCII In linguaggio C char nome. Scuola[] = ”Itis Parma"; int

Caratteri e codici ASCII In linguaggio C char nome. Scuola[] = ”Itis Parma"; int i=0; while(nome. Scuola[i]!=’’){ printf(“carattere %c ASCII %dn”, nome. Scuola[i]); i++; } … Il codice visualizza ogni elemento sia sotto forma di carattere che di codice ASCII

Esempio funzione che ritorna il numero di caratteri presenti in una stringa

Esempio funzione che ritorna il numero di caratteri presenti in una stringa

Problema: concatenare due parole immesse dall’utente, aggiungendo la seconda alla prima e inserendo tra

Problema: concatenare due parole immesse dall’utente, aggiungendo la seconda alla prima e inserendo tra le due un carattere spazio. Input: due parole. Output: visualizzare la stringa frutto della concatenazione.

// Concatenazione di stringhe #include <stdio. h> int main() { char p 1[25], p

// Concatenazione di stringhe #include <stdio. h> int main() { char p 1[25], p 2[25], p 3[50]; //le tre stringhe int i, j; //indici per scorrere i caratteri printf("Inserisci la prima parola"); scanf("%s”, p 1); printf("Inserisci la seconda parola"); scanf("%s”, p 2); for(i=0; p 1[i]!=''; i++) p 3[i]=p 1[i]; //copio i caratteri della prima parola p 3[i]=' '; //inserisco uno spazio i++; for(j=0; p 2[j]!=''; j++) p 3[i+j]=p 2[j]; p 3[i+j]=''; //inserisco il terminatore printf(“%s”, p 3); }

Libreria string. h La libreria string. h rende disponibili molte funzioni standard per gestire

Libreria string. h La libreria string. h rende disponibili molte funzioni standard per gestire le stringhe. : strcpy(stringa 1, stringa 2) copia stringa 2 su stringa 1; strncpy(stringa 1, stringa 2, n) copia i primi n caratteri di stringa 2 in stringa 1; strcat(stringa 1, stringa 2) concatena stringa 2 a stringa 1; strcmp(stringa 1, stringa 2) confronta stringa 2 con stringa 1, se sono uguali restituisce 0, se stringa 1 è maggiore di stringa 2 un valore positivo, altrimenti un valore negativo; intero = atoi(stringa) converte una stringa in un intero; reale = atof(stringa) converte una stringa in un valore in virgola mobile double; intero = strlen(stringa) conta il numero di caratteri di una stringa;