Introduzione al C. Unità 8 Stringhe. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi
|
|
- Leone Giuliano
- 5 anni fa
- Visualizzazioni
Transcript
1 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
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[5]='\0'; printf("%s\n", s); return 0; Questo programma stampa Hello s[4]='o'; // terminatore stringa 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"; str[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 e il terzo elemento cioè bc 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 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 26
27 Funzione strlen size_t strlen( const char *str ); Serve a determinare la lunghezza di una stringa Restituisce la lunghezza della stringa str passata come parametro È 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 27
28 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 28
29 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 29
30 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 30
31 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 31
32 Main di prova int main() { } char s[256]; char c; printf("digitare una parola, poi premere INVIO\n"); scanf("%s", s); //consumo il \n nel buffer while(c!= '\n') c = 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 32
33 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 33
34 Esempio: codifica di una stringa 2/3 Pagina 34
35 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 ris[i] = s[i] + d; 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 ris di dimensione almeno pari a quella di s. Inoltre, è necessario aggiungere il carattere '\0' per terminare la stringa di output. Pagina 35
36 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 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 2/2 Pagina 38
39 Header string.h 1/3 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 39
40 Header string.h 2/3 Pagina 40
41 Header string.h 3/3 Pagina 41
42 Comparazione di stringhe in C La funzione strcmp permette di confrontare due stringhe int strcmp(const char *str1,const char *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 42
43 Documentazione della funzione Pagina 43
44 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 44
45 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 45
46 Esercizio: verifica dell ordine Si scriva un programma che: legga due stringhe da tastiera; utilizzi la funzione strcmp per stabilire l ordine lessicografico; stampi il risultato Pagina 46
47 Verifica dell ordine: il programma Pagina 47
48 Riprogrammare la strcmp Pagina 48
49 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 49
50 Documentazione della funzione Pagina 50
51 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 51
52 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 52
53 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 53
54 Esecuzione str1: str2: str3: esempio esempio copia ri[d Ç Perché si può ottenere questo risultato? Pagina 54
55 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 55
56 Documentazione delle funzioni 1/2 Pagina 56
57 Documentazione delle funzioni 2/2 Pagina 57
58 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 58
59 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 59
60 Esempio d uso di strstr Cosa stampa questo programma? Pagina 60
61 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 61
62 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 62
63 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 63
64 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 64
65 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 65
66 Esecuzione >gcc stampaargomenti.c -o stampaargomenti >./stampaargomenti stampaargomenti >./stampaargomenti arg1 arg2 ciao stampaargomenti arg1 arg2 ciao Pagina 66
Introduzione al C. Unità 8 Stringhe. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
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 Sommario Unità 8 Array di
DettagliIntroduzione 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
DettagliStringhe 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
DettagliOperazioni 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
DettagliStringhe. 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
DettagliOperazioni sulle stringhe
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
DettagliCaratteri 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
DettagliLinguaggio 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
DettagliCaratteri 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
DettagliStringhe. 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
DettagliUna 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
DettagliELEMENTI 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:
DettagliSTRINGHE: 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ù
DettagliLezione 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
DettagliC: 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
DettagliStringhe 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
DettagliLezione 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:
DettagliRIPRENDIAMO 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
DettagliEsercizio 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
DettagliLe 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
DettagliEsercitazione 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
DettagliI 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
DettagliLinguaggio 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
DettagliStringhe 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
DettagliInformatica 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)
Dettaglichar* 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
Dettaglichar* 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
DettagliI 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
Dettaglistring.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
DettagliLibrerie 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
Dettaglis 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
DettagliPuntatori 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
DettagliStrutture 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
DettagliLinguaggio 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
DettagliStringhe 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
DettagliLibrerie 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
DettagliLe 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
DettagliLinguaggio 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
DettagliIntroduzione 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
DettagliIl 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
DettagliUniversità 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
DettagliIntroduzione al C Lez. 5. Stringhe
Introduzione al C Lez. 5 Una stringa è una sequenza di caratteri. Ad esempio una parola, una frase, un testo... In C non è previsto un tipo per le stringhe. Una stringa è vista come un array di caratteri
DettagliUso 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
DettagliIl 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
DettagliCorso 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
DettagliCorso 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
DettagliIntroduzione 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
DettagliStringhe. 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,
DettagliAllocazione 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
DettagliFile. 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
DettagliDispensa 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
DettagliStringhe 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
DettagliTipi 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,
DettagliVettori, puntatori e funzioni
Vettori, puntatori e funzioni Mauro Fiorentini, 2019 Univ. di Milano, 2019 M. Fiorentini Il linguaggio C - 336 Vettori come argomenti Quando si passa un vettore come argomento, in realtà si passa un puntatore
DettagliLa funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre
La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre Unica particolarità: viene chiamata dal Sistema Operativo, appena il programma viene avviato Non
DettagliLezione 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
DettagliEsercitazioni 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(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
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Array e stringhe. Marco D. Santambrogio Ver. aggiornata al 28 O0obre 2014
Array e stringhe Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 28 O0obre 2014 Frase insieme di caratteri Che cosa è una frase? Un insieme di caratteri Come la rappresento? Un insieme,
DettagliStringhe. 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];
DettagliPuntatori. 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
DettagliStringhe 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!
DettagliInput/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
DettagliLezione 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
DettagliSTRINGHE: 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
DettagliEsercizio 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
DettagliEsercitazione 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
DettagliLezione 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
DettagliLezione 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
DettagliIntroduzione 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.
DettagliIl 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
DettagliDati 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
DettagliEsercizi. 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)
DettagliCorso 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
Dettagliprogrammazione 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
DettagliLibrerie 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)
DettagliStringhe 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
DettagliIntroduzione al C Lez. 4. Allocazione Dinamica della memoria
Introduzione al C Lez. 4 Allocazione Dinamica della memoria Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso l allocazione esplicita di blocchi di memoria
Dettaglia.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
DettagliLezione 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
DettagliA. Ferrari. stringhe di caratteri In linguaggio C
stringhe di caratteri In linguaggio C stringhe o un insieme di caratteri in sequenza forma una stringa o alcuni linguaggi definiscono per le stringhe uno specifico tipo di dato e offrono metodi specifici
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliIntroduzione 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
DettagliLezione 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)
DettagliLezione 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
DettagliInformatica A (per gestionali) A.A. 2004/2005. Esercizi di programmazione C Stringhe Ricerca binaria
Informatica A (per gestionali) A.A. 2004/2005 Esercizi di programmazione C Stringhe Ricerca binaria Indice 1 Stringhe... 3 1.1 Codice di Cesare...3 1.2 Ricerca binaria...4 1.3 Indirizzi Internet...7 1.4
DettagliDIPARTIMENTO 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:
DettagliLe 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
DettagliIl 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
DettagliIl 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;
DettagliGestione 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