Introduzione al C. Unità 8 Stringhe. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione al C. Unità 8 Stringhe. D. Bloisi, S. Peluso, A. Pennisi, S. Salza"

Transcript

1 Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe D. Bloisi, S. Peluso, A. Pennisi, S. Salza

2 Sommario Unità 8 Array di caratteri: stringa Inizializzazione di stringhe Lettura e scrittura di stringhe Operazioni sulle stringhe Funzioni per la manipolazione delle stringhe Pagina 2

3 Array di caratteri Un caso particolare di array è quello costituito da caratteri. Le sequenze di caratteri servono per gestire testi. In C si usa il termine stringa per indicare gli array di caratteri. La libreria <string.h> offre alcune funzioni speciali per gli array di caratteri. Pagina 3

4 Rappresentazione di stringhe in C Nel linguaggio C una stringa è rappresentata mediante un array di caratteri terminante con il carattere speciale '\0' (codice ASCII = 0), che, quindi, funge da terminatore di stringa. In questo modo è possibile conoscere la lunghezza di una stringa contando il numero di caratteri che precedono il carattere '\0'. Pagina 4

5 Esempio 1 #include <stdio.h> int main() { const int N = 25; char s[n]; s[0] = 'H'; s[1]='e'; s[2]='l'; s[3]='l'; s[4]='o'; s[5]='\0'; // terminatore stringa printf("%s\n", s); return 0; } Questo programma stampa Hello Nota: si utilizza il formato %s nella printf per le stringhe Pagina 5

6 Esempio 2 #include <stdio.h> int main() { const int N = 25; } char s[n]; int i; for(i = 0; i < N; i++) s[i] = 'a'; s[0] = 'H'; s[1]='e'; s[2]='l'; s[3]='l'; s[4]='o'; // mancato inserimento // del terminatore stringa printf("%s\n", s); return 0; Questo programma stampa Helloaaaaaaaaaaaaaaaaaaaa Pagina 6

7 Esempio 3 #include <stdio.h> int main() { const int N = 25; } char s[n]; int i; for(i = 0; i < N; i++) s[i] = 'a'; s[0] = 'H'; s[1]='e'; s[2]='l'; s[3]='l'; s[4]='o'; s[5]='\0'; // terminatore stringa printf("%s\n", s); return 0; Questo programma stampa Hello Pagina 7

8 Stringhe costanti Stringa costante: serie di caratteri tra doppi apici Es: "HELLO WORLD" Stringa: array di caratteri che termina sempre con il carattere nullo, cioè la sequenza di escape \0 Per memorizzare una stringa si usa un array di caratteri: Char str[] = "some text" Array di 9+1=10 elementi Pagina 8

9 Stringhe e caratteri Le stringhe sono diverse dalle costanti carattere "a" stringa: è un array di 2 elementi: char array[2]; 'a' e '\0' 'a'costante : è un solo carattere: char ch = 'a'; In memoria: "a"occupa due byte ('a' e '\0') 'a'occupa un solo byte Pagina 9

10 Inizializzazione tramite costante 1/3 #include <stdio.h> int main() { char str[10] = printf("%s\n", return 0; } "some text"; str); Pagina 10

11 Inizializzazione tramite costante 2/3 Pagina 11

12 Inizializzazione tramite costante 3/3 L array che rappresenta la stringa ha dimensione (almeno) maggiore di 1 rispetto alla stringa Aggiunto automaticamente il terminatore \0 Se si specifica la lunghezza della stringa il numero di caratteri deve corrispondere char str[3] = "ecco"; tagliati gli ultimi due caratteri char str[3] = "e"; elementi mancanti messi a 0 Pagina 12

13 Esempio #include <stdio.h> int main() { char str[10] = "some text"; printf("%s\n", str); printf("dimensione di str = %d\n, sizeof(str)); char s[] = {'g', 'u', 'a', 'r', 'd', 'a'}; printf("%s\n", s); printf("dimensione di s = %d\n", sizeof(s)); return 0; } Pagina 13

14 Possibile output some text dimensione guardaxxx dimensione di str = 10 di s = 6 Manca il carattere di terminazione '\0' dopo l ultima 'a' di guarda Pagina 14

15 Esempio modificato #include <stdio.h> carattere int main() { speciale '\0' char str[10] = "some text"; printf("%s\n", str); printf("dimensione di str = %d\n, sizeof(str)); char s[] = {'g','u','a','r','d','a','\0'}; printf("%s\n", s); printf("dimensione di s = %d\n", sizeof(s)); return 0; } Pagina 15

16 Output di esempio modificato some text dimensione di str = 10 guarda dimensione di s = 7 Pagina 16

17 Stringhe e array Una stringa di caratteri è un array a tutti gli effetti Accesso ai singoli elementi tramite nome e indice char str[5] = "ecco"; char[3] contiene il carattere 'o' Viene trattata dal compilatore come un puntatore (nome di array) Il nome della stringa è l indirizzo del byte che contiene il primo elemento della stringa Pagina 17

18 Lettura e scrittura di stringhe 1/3 Si usano le funzioni scanf e printf con la specifica di formato %s char str[4]; scanf("%s", str); printf("%s", str); N.B. Non si mette l operatore indirizzo &, perché il nome della tringa str è già un puntatore che punta al primo elemento dell array Pagina 18

19 Lettura e scrittura di stringhe 2/3 #include <stdio.h> #define N 20 int main() { char ar[n] = "Oggi piove. ; char str[n]; printf("digita una stringa:"); scanf("%s", str); printf("prima stringa: %s\n", ar}; printf("seconda stringa: %s\n", str}; return 0; } Pagina 19

20 Lettura e scrittura di stringhe 3/3 scanf L argomento deve essere un puntatore a un array di dimensioni sufficienti per contenere la linea di input Termine di immissione: carattere invio Alla fine della stringa viene automaticamente aggiunto il carattere \0 printf L argomento deve essere un puntatore a un array di caratteri terminato dal carattere nullo (\0) I caratteri sono stampati fino al terminatore Pagina 20

21 Stringhe e puntatori 1/2 #include <stdio.h> int main() { char *p = "abc"; printf("%s %s %s", p, p+1, p+2); return 0; } Pagina 21

22 Stringhe e puntatori 2/2 La stringa sarà composta da quattro elementi, compreso il terminatore \0 Alla variabile p viene assegnato l indirizzo del primo elemento dell array di caratteri "abc" La stampa di un puntatore a char provoca la stampa di tutti caratteri dell array fino al terminatore \0 printf(.. p): stampa tutta la stringa cioè abc printf(.. P+1): stampa il secondo elemento cioè b printf(.. P+2): stampa il terzo elemento cioè c Pagina 22

23 Dimensione delle stringhe in C 1/4 Per le stringhe rappresentate come array di caratteri, bisogna distinguere tra Ø dimensione dell array (staticamente determinata alla sua creazione) rimane fissa Ø lunghezza della stringa (può invece variare a tempo di esecuzione) N.B. La dimensione della stringa (più il terminatore \0) dovrà essere sempre non superiore a quella dell array Pagina 23

24 Dimensione delle stringhe in C 2/4 const int N = 256; char s[n]; s[0]='h'; s[1]='e'; s[2]='l'; s[3]='l'; s[4]='o'; s[5]=\0; // terminatore di stringa Ø Dimensione dell array 256 Ø Lunghezza della stringa 5 Pagina 24

25 Dimensione delle stringhe in C 3/4 ATTENZIONE La lunghezza (dimensione) della stringa deve essere sempre minore o uguale della dimensione dell array meno uno (perché bisogna considerare sempre il carattere terminatore della stringa). In caso contrario, si ha un accesso fuori dalla zona di memoria allocata alla stringa con conseguente possibilità di errori. Pagina 25

26 Dimensione delle stringhe in C 3/4 Calcolo della lunghezza della stringa Il calcolo della lunghezza di una stringa, cioè il conteggio dei caratteri che precedono il terminatore di stringa, si effettua tramite la funzione strlen (v. dopo). Tale funzione è però inefficiente (perché richiede un ciclo di scansione di tutta la stringa); quindi, a volte, si preferisce usare un argomento esplicito che contiene la lunghezza della stringa. Pagina 26

27 Dimensione delle stringhe in C 4/4 Calcolo della lunghezza della stringa Il calcolo della lunghezza di una stringa, cioè il conteggio dei caratteri che precedono il terminatore di stringa, si effettua tramite la funzione strlen (v. dopo). Tale funzione è però inefficiente (perché richiede un ciclo di scansione di tutta la stringa); quindi, a volte, si preferisce usare un argomento esplicito che contiene la lunghezza della stringa. Pagina 27

28 Funzione strlen size_t strlen( const char *str ); Serve a determinare la lunghezza di una stringa Restituisce la lunghezza della stringa str passata come paramentro size_t È una funzione definita in <string.h> N.B. Il tipo size_t è di fatto unsigned long int e viene usato per contenere il valore assoluto della differenza tra due indirizzi Pagina 28

29 Esmpio strlen #include #include <stdio.h> <string.h> int main() { char str[100] = "test string"; printf("%d\n", sizeof(str)); printf("%d\n", strlen(str)); return 0; } Questo programma stampa Pagina 29

30 Esempio: conteggio di occorrenze 1/3 Scrivere una funzione che, presi come parametri una stringa (sotto forma di array di caratteri s[]) e uno specifico carattere c, restituisca il numero di occorrenze di c nella stringa. Pagina 30

31 Esempio: conteggio di occorrenze 2/3 int contachar (const char s[],int N,char c) { int conta = 0; int pos = 0; while (pos < N) { if (s[pos] == c)conta++; pos++; } return conta; } Pagina 31

32 Esempio: conteggio di occorrenze 3/3 Usando la funzione strlen int contachar(const char *s, char c) { int conta = 0; int pos = 0; int N = strlen(s); while (pos < N) { if (s[pos] == c) conta++; pos++; } return conta; } Pagina 32

33 Main di prova int main() { } char s[256]; char c; printf("digitare una parola, poi premere INVIO\n"); scanf("%s", s); //pulisco il buffer in ingresso while(c!= '\n' && c!= EOF){getchar();} printf("digita il carattere da cercare, poi premiinvio\n"); scanf("%c", &c); int i = contachar(s, c); printf("il carattere %c si trova %d volte in %s\n",c,i,s); return 0; Pagina 33

34 Esempio: codifica di una stringa 1/3 Scrivere una funzione che, presi come parametri una stringa (sotto forma di array di caratteri) ed un intero d, restituisca la stringa opportunamente codificata. La codifica è ottenuta sostituendo ciascun carattere con il carattere che ha codice pari al codice del carattere da sostituire incrementato di d. Esempio "ciao" con d=3 diventerà "fldr" Pagina 34

35 Esempio: codifica di una stringa 2/3 void } codifica(const char *str,char *strris,int d){ char c; int ci; int N = strlen(str); int i; for (i = 0; i < strris[i] N; i++) = d + str[i]; strris[n]='\0'; // terminatore di stringa return; Pagina 35

36 Esempio: codifica di una stringa 3/3 Nota 1: il primo dei due parametri di tipo array di caratteri ha il ruolo di input, ed è quindi dichiarato const, mentre il secondo ha il ruolo di output e non può essere dichiarato const in quanto verrà modificato. Nota 2: nell istruzione strris[i] = d + str[i]; c è una conversione implicita ad intero per poter effettuare la somma e poi una conversione di nuovo a carattere per memorizzare il risultato. Nota 3: in questa funzione si assume che sia stata già allocata memoria per la stringa di output strris di dimensione almeno pari a quella di str. Inoltre, è necessario aggiungere il carattere '\0' per terminare la stringa di output. Pagina 36

37 Esempio: sequenza più lunga 1/2 Scrivere una funzione che: riceva una stringa come parametro restituisca la lunghezza della più lunga sequenza di 0 contenuta nella stringa data Se ad esempio la stringa passata come parametro è " ", allora la più lunga sequenza di soli '0' è quella sottolineata, che ha lunghezza 3. Pagina 37

38 Esempio: sequenza più lunga 1/2 Scrivere una funzione che: riceva una stringa come parametro restituisca la lunghezza della più lunga sequenza di 0 contenuta nella stringa data Se ad esempio la stringa passata come parametro è " ", allora la più lunga sequenza di soli '0' è quella sottolineata, che ha lunghezza 3. Pagina 38

39 Esempio: sequenza più lunga 2/2 int sottosequenza(const char *s) { char bit; // l elemento corrente della sequenza int i, cont = 0; // lunghezza attuale della sequenza di 0 int maxlung = 0; // valore temporaneo della massima lungh } int N = strlen(s); // lunghezza della stringa for (i =0; i < N; i++) { bit = s[i]; if (bit =='0'){ // e stato letto un altro '0' cont++; // aggiorna la lungh.della sequenza corrente if (cont > maxlung) maxlung=cont; } else // e stato letto un 1 cont = 0; // azzera la lungh. seq. corr. } return maxlung; Pagina 39

40 Header string.h string.h è un header file che contiene una serie di definizioni di funzioni per la manipolazione di stringhe Ad esempio in string.h è definita la funzione size_t strlen( const char *str ); che restituisce la lunghezza della stringa passata parametro str. Pagina 40

41 Comparazione di stringhe in C La funzione strcmp permette di confrontare due stringhe int strcmp(const char *str1,const *str2); Effettua un confronto lessicografico tra due stringhe restituendo un valore < 0 se str1 precede str2, = 0 se str1 è uguale a str2, > 0 se str1 segue str2 Pagina 41

42 Confronto lessicografico Una stringa s precede una stringa t in ordine lessicografico se: s è un prefisso di t, oppure se c e d sono il primo carattere rispettivamente di s e t in cui s e t differiscono, allora c precede d nell ordinamento dei caratteri. Nota: per i caratteri che sono lettere alfabetiche, l ordinamento è quello alfabetico. Le cifre precedono le lettere e le lettere maiuscole precedono quelle minuscole. Pagina 42

43 Esempi auto precede automatico Automatico precede auto albero precede alto H2O precede HOTEL N.B. Il codice ASCII di A è inferiore a quello di a Pagina 43

44 Esercizio: verifica dell ordine Si scriva un programma che utilizzi la funzione strcmp per verificare l ordine lessicografico mostrato negli esempi precedenti. Pagina 44

45 Schema di soluzione #include #include #include <stdio.h> <string.h> <stdlib.h> int main() { char a[20] = char b[20] = if(strcmp(a, } "auto"; "automatico"; b) < 0) { printf("%s precede %s\n", a, b); } else if(strcmp(a, printf("%s } else { printf("%s } return EXIT_SUCCESS; b) == 0) { uguale %s\n", a, b); segue %s\n", a, b); Pagina 45

46 Copia di stringhe in C char *strcpy(char *dest, const char *src); Copia la stringa src in dest e restituisce dest; dest viene quindi modificata. char *strncpy(char size_t n); *dest,const char *src, Copia i primi n caratteri di src in dest e restituisce dest; dest viene quindi modificata. Pagina 46

47 Esempio d uso di strcpy #include #include #include <stdio.h> <string.h> <stdlib.h> int main() { char str1[] = "esempio"; char str2[40]; char str3[40]; strcpy(str2, str1); strcpy(str3, "copia riuscita"); printf("str1: %s\nstr2: %s\nstr3: %s\n", str1, str2, str3); return EXIT_SUCCESS; } Pagina 47

48 Nota su strcpy La funzione strcpy copia la stringa src nella stringa dest, incluso il carattere terminatore e la restituisce. Il contenuto precedente di dest viene perduto. Il controllo che lo spazio puntato da dest sia sufficiente rimane a carico del programmatore. Pagina 48

49 Esempio d uso di strncpy #include #include #include <stdio.h> <string.h> <stdlib.h> int main() { char str1[] = "esempio"; char str2[40]; char str3[40]; strcpy(str2, str1); strncpy(str3, "copia riuscita", 8); printf("str1: %s\nstr2: %s\nstr3: %s\n", str1, str2, str3); return EXIT_SUCCESS; } Pagina 49

50 Esecuzione str1: str2: str3: esempio esempio copia ri[d Ç Perché si può ottenere questo risultato? Pagina 50

51 Concatenazione di stringhe in C char *strcat(char *str1, const char *str2); Concatena str2 alla fine di str1 e restituisce str1; str1 viene quindi modificata. char * strncat(char *str1, const char *str2, size_t n); Concatena i primi n caratteri di str2 alla fine di str1 e restituisce str1; str1 viene quindi modificata. Pagina 51

52 Esempio d uso di strcat #include #include #include <stdio.h> <string.h> <stdlib.h> int main() { char str[80]; strcpy(str, strcat(str, strcat(str, } "queste "); "stringhe "); "sono "); strcat(str, "concatenate."); printf("%s\n", str); return EXIT_SUCCESS; Pagina 52

53 Ricerca di occorrenze di stringhe char *strstr(const char *str1, const char *str2); Riceve come parametri due stringhe str1 e str2 Restituisce il puntatore alla prima occorrenza della stringa str2 in str1, oppure NULL se str2 non compare come sotto-stringa di str1 Le stringhe str1 e str2 non vengono modificate Pagina 53

54 Esempio d uso di strstr #include #include #include <stdio.h> <string.h> <stdlib.h> int main() { char str[] = "Tutti a casa, subito!"; char* pch; pch = strstr(str, "casa"); if(pch!= NULL) strncpy(pch, "mare", 4); printf("%s\n", str); return EXIT_SUCCESS; } Pagina 54

55 Leggere stringhe da stream char* fgets(char *s, int n, FILE *stream); fgets legge al più il numero di caratteri n meno uno dallo stream specificato e li memorizza nella stringa s La lettura termina quando si hanno un carattere di nuova linea, un EOF o un errore. Se qualche carattere è stato letto e non c è errore allora il carattere \0 è inserito alla fine di s. Pagina 55

56 Esempio d uso di fgets #include <stdio.h> int main() { char buffer[60]; char* pointer; int i; STREAM STANDARD DI INPUT pointer = fgets(buffer, 60, stdin); if (pointer!= NULL) printf("%s\n", pointer); return 0; } N.B. È meglio di scanf perché possiamo evitare di eccesere la taglia del buffer passato in input Pagina 56

57 Esercizio Si scriva un programma che: legga da tastiera una stringa di lunghezza arbitraria terminante con \n stampi in output la stringa che ha letto per limitare lo spreco di memoria si può utilizzare solo un buffer di taglia massima 5 byte per memorizzare i caratteri in input. Pagina 57

58 Parametri in input ad un programma La funzione main può essere dichiarata anche con un prototipo a due argomenti: int main(int argc, char **argv) Gli argomenti della funzione main indicano un array di stringhe rappresentate mediante array di caratteri argv il numero di elementi dell array argc. Il primo argomento, cioè argv[0], corrisponde al nome del file eseguibile. Pagina 58

59 Esempio: stampa argomenti #include <stdio.h> int main(int argc, char **argv) { int k; for (k = 0; k < argc; k++) printf("%s ", argv[k]); printf("\n"); } Pagina 59

60 Esecuzione >gcc stampaargomenti.c -o stampaargomenti >./stampaargomenti stampaargomenti >./stampaargomenti arg1 arg2 ciao stampaargomenti arg1 arg2 ciao Pagina 60

Introduzione al C. Unità 8 Stringhe. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Introduzione al C. Unità 8 Stringhe. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Sommario

Dettagli

Introduzione al C. Unità 8 Stringhe

Introduzione al C. Unità 8 Stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe D. Bloisi, A. Pennisi, S. Peluso, S. Salza Sommario Unità 8 Array di

Dettagli

Stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Stringhe. Unità 8. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Stringhe. Unità 8. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto

Dettagli

Operazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Operazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Stringhe. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Stringhe. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

Linguaggio C: Stringhe Valeria Cardellini

Linguaggio C: Stringhe Valeria Cardellini Linguaggio C: Stringhe Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Argomenti q

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0

Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0 STRINGHE: ARRAY DI CARATTERI Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1

Dettagli

ELEMENTI DI INFORMATICA. Linguaggio C

ELEMENTI DI INFORMATICA. Linguaggio C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

STRINGHE: ARRAY DI CARATTERI! a p e \0

STRINGHE: ARRAY DI CARATTERI! a p e \0 STRINGHE: ARRAY DI CARATTERI! Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

Stringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10

Stringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10 Stringhe in C Luca Abeni Informatica Luca Abeni 1 / 10 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe

Dettagli

RIPRENDIAMO I PUNTATORI

RIPRENDIAMO I PUNTATORI RIPRENDIAMO I PUNTATORI Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 =&a Esistono in C particolari variabili dette

Dettagli

Lezione XI Le stringhe

Lezione XI Le stringhe Programmazione e Laboratorio di Programmazione Lezione XI Le stringhe Programmazione e Laboratorio di Programmazione: Le stringhe 1 Premessa: Il tipo char Dimensione: 1 byte Range: da 0 a 255 Definizione:

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 1: funzione con valore di ritorno di tipo puntatore Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio

Dettagli

Le stringhe. Le stringhe sono sequenze di caratteri,

Le stringhe. Le stringhe sono sequenze di caratteri, Stringhe Le stringhe Le stringhe sono sequenze di caratteri, in C le stringhe costanti vengono denotate da una successione di caratteri racchiusa fra apici Es: "ciccio" "n = %d" "Ciao Mondo" La rappresentazione

Dettagli

Linguaggio C - Array. Array: tipo nome_array[num_elementi]

Linguaggio C - Array. Array: tipo nome_array[num_elementi] Linguaggio C - Array Array: Gli array o vettori sono delle strutture dati in grado di contenere un insieme di valori tutti dello stesso tipo. Un array lo possiamo immaginare come un contenitore suddiviso

Dettagli

Esercitazione di Reti degli elaboratori

Esercitazione di Reti degli elaboratori Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione

Dettagli

Stringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14

Stringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14 Stringhe in C Nicu Sebe Informatica Nicu Sebe 1 / 14 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

Dettagli

Puntatori e array. Violetta Lonati

Puntatori e array. Violetta Lonati Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array

Dettagli

char* titolo= { l, e,, s, t, r, i, n, g, h, e, \0 };

char* titolo= { l, e,, s, t, r, i, n, g, h, e, \0 }; char* titolo= { l, e,, s, t, r, i, n, g, h, e, \0 }; 1 Libreria sulle stringhe libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017

Dettagli

Linguaggio C - Stringhe

Linguaggio C - Stringhe ISTITUTO SECONDARIO DI ISTRUZIONE SUPERIORE "Guido Tassinari" di POZZUOLI Informatica Prof. A.S. 2011/2012 Linguaggio C - Stringhe 27/04/2012 Array di caratteri Una stringa è: Un array di caratteri Termina

Dettagli

char* titolo= Libreria sulle stringhe Esempi: (strcpy) (strstr)... Laboratorio di Informatica L-A 1

char* titolo= Libreria sulle stringhe Esempi: (strcpy) (strstr)... Laboratorio di Informatica L-A 1 char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; 1 Libreria sulle stringhe La libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra

Dettagli

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)

Dettagli

Le stringhe. Le stringhe sono sequenze di caratteri,

Le stringhe. Le stringhe sono sequenze di caratteri, Stringhe Le stringhe Le stringhe sono sequenze di caratteri, in C le stringhe costanti vengono denotate da una successione di caratteri racchiusa fra apici Es: "ciccio" "n = %d" "Ciao Mondo" La rappresentazione

Dettagli

string.h strcpy strc strcat strcmp strcmp strchr strstr strstr i t r ; s r \0 int strlen(char* str) char pippo[]={ p, i, p, p, o, \0 \ };

string.h strcpy strc strcat strcmp strcmp strchr strstr strstr i t r ; s r \0 int strlen(char* str) char pippo[]={ p, i, p, p, o, \0 \ }; char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; Libreria sulle stringhe libreria i string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra (strcpy

Dettagli

s r t i r n i g n. g h s r t c r p c y s r t c r a c t s r t c r m c p s r t c r h c r s r t s r t s r

s r t i r n i g n. g h s r t c r p c y s r t c r a c t s r t c r m c p s r t c r h c r s r t s r t s r char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; 1 Libreria sulle stringhe La libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra

Dettagli

Stringhe in C. Emilio Di Giacomo

Stringhe in C. Emilio Di Giacomo Stringhe in C Emilio Di Giacomo Stringhe Una stringa è una sequenza finita di caratteri Le stringhe sono un tipo di dati talmente importante e utile che fanno parte di quasi tutti i linguaggi di programmazione

Dettagli

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici. Operatori di incremento e decremento ++ e -- Esempi y=x++ il contenuto della variabile x viene inizialmente usata per l assegnazione y, e solo dopo incrementata y=--x il contenuto della variabile x viene

Dettagli

I CARATTERI E LE STRINGHE

I CARATTERI E LE STRINGHE I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard

Dettagli

Linguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin

Linguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin Linguaggio C Vettori, Puntatori e Funzioni Stringhe Università degli Studi di Brescia Prof. Massimiliano Giacomin SCHEMA DELLA LEZIONE RELAZIONE TRA VETTORI E PUNTATORI (e le stringhe letterali come caso

Dettagli

Il linguaggio C Gestione della memoria

Il linguaggio C Gestione della memoria Il linguaggio C Gestione della memoria Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - Gestione della memoria

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali

Dettagli

Librerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h

Librerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comuni di I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int

Dettagli

Il blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. Esempio:

Il blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. Esempio: Variabili locali Il blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. void leggivettore(int v[], int dim) int i; /* i E UNA VARIABILE LOCALE */ for (i

Dettagli

Corso di Laboratorio di Sistemi Operativi A.A

Corso di Laboratorio di Sistemi Operativi A.A Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 10 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche

Dettagli

Uso avanzato dei puntatori Allocazione dinamica della memoria

Uso avanzato dei puntatori Allocazione dinamica della memoria Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Librerie C. Corso di Linguaggi e Traduttori 1 AA

Librerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comunidi I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int

Dettagli

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri

Dettagli

Introduzione al C. Lezione 4 Allocazione dinamica della memoria. Rossano Venturini. Pagina web del corso

Introduzione al C. Lezione 4 Allocazione dinamica della memoria. Rossano Venturini. Pagina web del corso Introduzione al C Lezione 4 Allocazione dinamica della memoria Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso

Dettagli

Stringhe. Concetti chiave

Stringhe. Concetti chiave Concetti chiave Stringhe Variabili strutturate: array di caratteri Carattere di fine stringa Copiare, concatenare, confrontare e convertire stringhe Funzioni standard strcpy, strcat, strcat, strcmp, atoi,

Dettagli

Esercizi. Stringhe. Stringhe Ricerca binaria

Esercizi. Stringhe. Stringhe Ricerca binaria Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)

Dettagli

Tipi strutturati in C. Stringhe

Tipi strutturati in C. Stringhe Tipi strutturati in C Stringhe Stringhe Una stringa di caratteri in C è un array di caratteri terminato dal carattere \0 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1 caratteri,

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

Dettagli

Esercizio 1 (15 punti)

Esercizio 1 (15 punti) Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 16 giugno 2017 Il noto gioco MasterMind

Dettagli

Esercitazioni Fondamenti di Informatica

Esercitazioni Fondamenti di Informatica Esercitazioni Fondamenti di Informatica Marco Biagi Esercitazione 10 Email: marco.biagi@unifi.it Stringhe in C Una stringa è una sequenza di caratteri con un ordine prestabilito char c = p ; char stringa[]

Dettagli

Dispensa 13 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN INGEGNERIA E SCIENZE INFORMATICHE CESENA. Laboratorio

Dispensa 13 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN INGEGNERIA E SCIENZE INFORMATICHE CESENA. Laboratorio CORSO DI LAUREA IN INGEGNERIA E SCIENZE INFORMATICHE CESENA CORSO DI PROGRAMMAZIONE A.A. 2014-15 Dispensa 13 Laboratorio Dott. Mirko Ravaioli e-mail: mirko.ravaioli@unibo.it http://www.programmazione.info

Dettagli

Lezione 5 Sottoarray di somma massima

Lezione 5 Sottoarray di somma massima Lezione 5 Sottoarray di somma massima Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 My strcat 1 Esercizio Implementare

Dettagli

Introduzione al C. Ancora puntatori, allocazione dinamica, e tipi derivati

Introduzione al C. Ancora puntatori, allocazione dinamica, e tipi derivati Introduzione al C Ancora puntatori, allocazione dinamica, e tipi derivati 1 Array di caratteri Non esiste in C un tipo di dato predefinito per le stringhe Le stringhe sono rappresentate come array di caratteri.

Dettagli

Stringhe e tipi di dati strutturati

Stringhe e tipi di dati strutturati Stringhe e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!

Dettagli

Stringhe di caratteri

Stringhe di caratteri Stringhe di caratteri 1 Rappresentazione Sommario Dichiarazione Indice di un carattere in una stringa Operazione su stringhe Errori comuni 2 Rappresentazione Ricorda: In memoria le celle di un array sono

Dettagli

Lezione 3 Sottoarray di somma massima

Lezione 3 Sottoarray di somma massima Lezione 3 Sottoarray di somma massima Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Esercizio 1 int* FindVal(int

Dettagli

Lezione 3 Sottoarray di somma massima

Lezione 3 Sottoarray di somma massima Lezione 3 Sottoarray di somma massima Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Esercizio 1 int* FindVal(int

Dettagli

STRINGHE: ARRAY DI CARATTERI STRINGHE: ARRAY DI CARATTERI. a p e \0

STRINGHE: ARRAY DI CARATTERI STRINGHE: ARRAY DI CARATTERI. a p e \0 STRINGHE: ARRAY DI CARATTERI Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1

Dettagli

Esercitazione 5. Unità Domenico Daniele Bloisi

Esercitazione 5. Unità Domenico Daniele Bloisi Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Unità 6-7-8 Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

(Def. funzioni con parametri di tipo matrice)

(Def. funzioni con parametri di tipo matrice) ESERCIZIO 1 (Def. funzioni con parametri di tipo matrice) Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante

Dettagli

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione

Dettagli

Stringhe. Prof. Lorenzo Porcelli

Stringhe. Prof. Lorenzo Porcelli Stringhe Prof. Lorenzo Porcelli definizione Una stringa è un vettore di caratteri terminato dal carattere nullo \0. Il carattere nullo finale permette di determinare la lunghezza della stringa. char vet[32];

Dettagli

Il linguaggio C Puntatori

Il linguaggio C Puntatori Il linguaggio C Puntatori Libro cap. 7, 8.1, 8.2 Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - puntatori

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016 Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Aprile 2016 Come rappresento un pixel? Il pixel è Il colore Come ottengo il verde? Con il formato RGB R: 91 G: 191 B:

Dettagli

Lezione 11: Liste a Puntatori e Input/Output

Lezione 11: Liste a Puntatori e Input/Output Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)

Dettagli

Stringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche

Stringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche Fondamenti di Informatica T-1 modulo 2 Laboratorio 04: stringhe 1 Stringhe In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche terminatore

Dettagli

Lezione 6: Funzioni di I/O avanzate

Lezione 6: Funzioni di I/O avanzate Lezione 6: Funzioni di I/O avanzate Laboratorio di Elementi di Architettura e Sistemi Operativi 11 Aprile 2012 Funzioni avanzate di I/O Il buffer di tastiera I caratteri digitati da tastiera rimangono

Dettagli

Gestione di stringhe. Le stringhe in C/C++

Gestione di stringhe. Le stringhe in C/C++ Alessio Bechini - Corso di - Gestione di stringhe Parte del materiale proposto è stato gentilmente fornito da G. Lipari Le stringhe in C/C++ In C e in C++ non esiste un vero e proprio tipo stringa. Una

Dettagli

a.a Codice corso: 21012, 22010

a.a Codice corso: 21012, 22010 ESERCIZIO 1 Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante se la matrice è simmetrica oppure no. Scrivere

Dettagli

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del

Dettagli

int, char, float.. int, char, float.. - char, int, float, double char: int float: double: float int char signed unsigned short int long int double int Pippo; unsigned int Pippo; long int Pippo; long int

Dettagli

programmazione distribuita Introduzione Introduzione alla programmazione distribuita

programmazione distribuita Introduzione Introduzione alla programmazione distribuita Reti Informatiche Introduzione alla programmazione distribuita Introduzione Richiami di Programmazione C Differenze principali C/C++ 2 1 Definizioni di variabili Le variabili possono essere definite solo

Dettagli

Il linguaggio C Puntatori

Il linguaggio C Puntatori Il linguaggio C Puntatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - puntatori 2 Ringraziamenti Questi

Dettagli

soldi soldi, int, char, float.. int, char, float.. - char, int, float, double char: int float: double: float int char signed unsigned short int long int double int Pippo; unsigned int Pippo; long int

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Lezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe

Lezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe Lezione 19 e 20 - Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe Valentina Ciriani (2005-2008) Laboratorio di programmazione Valentina Ciriani

Dettagli

Tipi di dato STRUTTURATI

Tipi di dato STRUTTURATI Tipi di dato STRUTTURATI I tipi di dato si differenziano in scalari e strutturati In C si possono definire tipi strutturati: array e strutture [ ] (array) Un array è una collezione finita di N variabili

Dettagli

Lezione 22: Input/Output e Files

Lezione 22: Input/Output e Files Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard

Dettagli

Lezione 7: Funzioni e gestione dei File

Lezione 7: Funzioni e gestione dei File Lezione 7: Funzioni e gestione dei File Laboratorio di Elementi di Architettura e Sistemi Operativi 18 Aprile 2012 Le funzioni Funzioni Un programma C consiste di una o più funzioni Almeno main() Funzionamento

Dettagli

1

1 Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix

Dettagli

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, A. Pennisi, S. Peluso, S. Salza, C. Ciccotelli Sommario Input/Output

Dettagli

Librerie Stringhe. Librerie e stringhe. Lezione 9. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. 2015/2016

Librerie Stringhe. Librerie e stringhe. Lezione 9. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. 2015/2016 e stringhe Lezione 9 Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2015/2016 Calendario delle lezioni Lezione 1 (7 e 9/10/2015) - Introduzione all ambiente Linux Lez. 2 (14 e 16/10/2015)

Dettagli

soldi soldi, int, char, float char, int, float, double char: int float: double: float int char signed unsigned short int long int double Unità di Elaborazione (CPU) unsigned int Pippo long int Pluto

Dettagli

Introduzione al C Lez. 4

Introduzione al C Lez. 4 Introduzione al C Lez. 4 Allocazione Dinamica della memoria http://www.di.unipi.it/~rossano/algo1/lez4.pdf Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione al linguaggio C Primi programmi Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti

Dettagli

Gestione dei file in C

Gestione dei file in C Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente

Dettagli