1 / 12

Stringhe di caratteri

Stringhe di caratteri. In linguaggio C. 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.

rodney
Télécharger la présentation

Stringhe di caratteri

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Stringhe di caratteri In linguaggio C

  2. 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. charnomeStudente[10];

  3. Le stringhe in C char nomeScuola[]=“Itis” nomeScuola 0 I 1 t 2 i 3 s 4 /0 • Nell’esempio viene dichiarato l’array di caratteri nomeScuola 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: \0, conosciuto come il carattere null.

  4. Un esempio

  5. Inizializzazione

  6. 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\0 • Un carattere inserito tra apici singoli è trattato come un singolo carattere.

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

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

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

  10. Problema • 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.

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

  12. Libreria string.h • La libreria string.h rende disponibili molte funzioni standard per gestire le stringhe.: • strcpy(stringa1, stringa2) copia stringa2 su stringa1; • strncpy(stringa1, stringa2, n) copia i primi n caratteri di stringa2 in stringa1; • strcat(stringa1, stringa2) concatena stringa2 a stringa1; • strcmp(stringa1, stringa2) confronta stringa2 con stringa1, se sono uguali restituisce 0, se stringa1 è maggiore di stringa2 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;

More Related