Stringhe. Una stringa è una sequenza di caratteri. Esempi: printf( Sum = %d, s); #define ERR_PREFIX ***** Error -
|
|
- Fabriciano Bondi
- 6 anni fa
- Visualizzazioni
Transcript
1 Stringhe dichiarazione e input/output assegnamento e sottostringhe concatenazione confronto array di puntatori a stringhe input/output, analisi e conversione di caratteri conversione da stringa a numero e viceversa 1
2 Stringhe Una stringa è una sequenza di caratteri. Esempi: printf( Sum = %d, s); #define ERR_PREFIX ***** Error - #define INSUFF_DATA Insufficient data 2
3 Dichiarazione e inizializzazione char str_var[30]; la variabile str_var può contenere una stringa contenente un numero di caratteri compreso tra 0 e 29 char str[20] = Initial value ; I n i t i a l v a l u e \0 [0] [4] [9] [14] [19] 3
4 Carattere nullo Il carattere \0, chiamato carattere nullo, indica la fine della stringa. A causa della presenza del carattere nullo, le stringhe memorizzabili in un array di caratteri hanno come lunghezza massima la dimensione dell array meno 1. Le funzioni C per la manipolazione di stringhe ignorano il contenuto degli elementi che seguono il carattere nullo. 4
5 Array di stringhe Poichè una stringa è un array di caratteri, un array di stringhe è un array bidimensionale di caratteri, in cui ogni riga è una stringa. Es:. #define NUM_PEOPLE 30 #define NAME_LEN 25 char names[num_people][name_len]; char month[12][10] = { January, February, March, April, May, June, July, August, September, October, November, December }; 5
6 Input / Output printf( Topic: %s\n, str_var); stampa i caratteri contenuti in str_var che precedono il carattere nullo. printf( ***%8s***\n, Short ); stampa la stringa Short all interno di un campo di 8 caratteri, giustificata a destra. se la dimensione del campo è troppo piccola per contenere la stringa, il campo viene esteso della quantità minima necessaria per poter contenere la stringa. 6
7 Input / Output printf( %-10s\n, String ); stampa la stringa String all interno di un campo di 10 caratteri, giustificata a sinistra. char name[name_len]; scanf( %s, name); prende in input una stringa; poichè il passaggio di parametri di tipo array avviene passando l indirizzo del primo elemento dell array, la variabile name non deve essere preceduta da & 7
8 scanf( %s, name); [0] N a d i a \0 [4] [9] [14] dati inseriti > Nadia spazi ignorati causa l inserimento di \0 La scanf ignora spazi, return e tab iniziali; inserisce quindi i caratteri in celle consecutive; quando trova uno spazio (o return o tab) aggiunge il carattere nullo e termina la scansione dell input. 8
9 char name[name_len]; int age; Input - esempio scanf( %s%d, name, &age); > Nadia25 Se non separo i dati in input con spazi, la scanf non è in grado di separare i dati e inserisce la sequenza di caratteri Nadia25 nella stringa name: name N a d i a 2 5 \0 age?? 9
10 Input - esempio char names[num_people][name_len]; int ages[num_people]; for (i = 0; i < NUM_PEOPLE; i++) { scanf( %s%d, names[i], &ages[i]); printf( %-35s %3d\n, names[i], ages[i]); } riempie gli array contenenti nomi ed età di un insieme di persone ed effettua l eco dei dati inseriti. 10
11 Assegnamento Un nome di array senza indici rappresenta l indirizzo del primo elemento dell array. Tale indirizzo è costante e non può essere cambiato con un assegnamento: char str[15]; str = Test string ; /* errore! */ viene segnalato un errore in fase di compilazione 11
12 Assegnamento La libreria string.h fornisce funzioni per operare sulle stringhe. strcpy(str, Test string ); copia la stringa fornita come secondo argomento nel primo argomento. str T e s t s t r i n g \0 12
13 Assegnamento La prima stringa deve avere dimensione sufficiente a contenere la seconda stringa più il carattere nullo strcpy(str, A long test string ); in questo caso i caratteri finali i, n, g e \0 vengono memorizzati in locazioni riservate ad altre variabili. str A l o n g t e s t s t r 13
14 Assegnamento La funzione strncpy permette di specificare il numero di caratteri da copiare: strncpy(str, Test, 15); str T e s t \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 Se la stringa sorgente è più corta del numero di caratteri specificato, i restanti caratteri vengono posti a nullo. 14
15 Assegnamento Per assegnare il massimo prefisso della stringa sorgente alla stringa destinazione si utilizzano le seguenti istruzioni: strncpy(dest, source, dest_len - 1); dest[dest_len - 1] = \0 ; 15
16 Prototipo di strcpy e strncpy char *strcpy(char *dest, char *source); char *strncpy(char *dest, char *source, size_t n); Il valore di ritorno è la stringa contenuta in dest. Il chiamante può ottenere il risultato in due modi: può utilizzare il primo argomento può utilizzare il valore di ritorno 16
17 Sottostringhe - prefissi Le funzioni strcpy e strncpy possono essere utilizzate per estrarre frammenti (sottostringhe) di una stringa. Es.: estrarre giorno, mese ed anno dalla stringa 27/09/1999 I primi n caratteri di una stringa possono essere estratti mediante le seguenti istruzioni: strncpy(result, source, n); result[n] = \0 ; 17
18 Sottostringhe centrali Un nome di array senza indici rappresenta l indirizzo del primo elemento dell array. Per estrarre una sottostringa centrale che inizia alla posizione k (e di lunghezza n) forniamo a strncpy l indirizzo dell elemento di indice k: strncpy(result, &source[k], n); result[n] = \0 ; 18
19 Sottostringhe - suffissi Per estrarre la parte finale di una stringa, a partire dalla posizione k, utilizzo la seguente istruzione: strcpy(result, &source[k]); La funzione strcpy copia tutti i caratteri finchè non trova (e copia) il carattere nullo. 19
20 Sottostringhe - esempio Estrazione di giorno, mese ed anno dalla data: char date[11] = 15/01/2000 ; char day[3], month[3], year[5]; strncpy(day, date, 2); day[2] = \0 ; strncpy(month, &date[3], 2); month[2] = \0 ; strcpy(year, &date[6]); 20
21 Lunghezza e stringa vuota La lunghezza di una stringa è il numero di caratteri che precedono il carattere nullo. La funzione strlen restituisce la lunghezza della stringa. char str[20] = hello ; printf( %d\n, strlen(str)); La stringa vuota è una stringa di lunghezza 0; il primo carattere della stringa è il carattere nullo: char empty_str[30] = ; 21
22 Concatenazione Le funzioni strcat e strncat modificano il primo argomento aggiungendo tutta o parte della stringa fornita come secondo argomento. Le due funzioni assumono che il primo argomento abbia dimensione sufficiente a contenere i caratteri che vengono aggiunti. 22
23 Concatenazione #define STRSIZ 15 char f1[strsiz] = John, f2[strsiz] = Jacqueline, last[strsiz] = Kennedy ; strcat(f1, last); strcat(f2, last); f1 J o h n K e n n e d y \0 f2 J a c q u e l i n e K e n n i caratteri e, d, y vengono posti all inizio di last. 23
24 Concatenazione - carattere nullo La funzione strcat aggiunge un intera stringa, comprensiva del carattere nullo. La funzione strncat aggiunge il carattere nullo solo c è un carattere nullo tra gli n caratteri copiati. 24
25 Siano s1 ed s2 due stringhe di lunghezza STRSIZ: char s1[strsiz], s2[strsiz]; Se possibile viene effettuata la concatenazione di s1 ed s2; se lo spazio non è sufficiente, viene aggiunto il massimo prefisso di s2 che non causa overflow: if (strlen(s1) + strlen(s2) < STRSIZ) { strcat(s1, s2); } else { strncat(s1, s2, STRSIZ - strlen(s1) - 1); s1[strsiz -1] = \0 ; } 25
26 Punti critici nella manipolazione di stringhe la dimensione del parametro di output è sufficiente a contenere la stringa che stiamo creando? la stringa che stiamo creando termina con \0? 26
27 Differenza tra caratteri e stringhe Il carattere b non è un argomento valido per una funzione che richiede una stringa (es.: strcat, strcpy,...) b carattere b b \0 stringa b 27
28 Input di una linea di testo La funzione scanf utilizza gli spazi come delimitatori della fine di una stringa. La funzione gets permette di prendere in input un intera linea di testo (fino al carattere return): char line[80]; printf( > ); gets(line, 80); > Short line. S h o r t l i n e. \0 28
29 Confronto di stringhe str1 < str2 se str1 e str2 sono stringhe, la condizione è vera se la locazione contenente il primo elemento di str1 precede la locazione contenente il primo elemento di str2. La funzione di libreria strcmp effettua il confronto di 2 stringhe: strcmp(str1, str2) ritorna un valore negativo se str1 è minore di str2 0 se str1 è uguale ad str2 un valore positivo se str1 è maggiore di str2 29
30 Ordinamento di stringhe 1. se i primi n caratteri di str1 ed str2 sono uguali e i caratteri in posizione n sono diversi, allora str1 è minore di str2 se str1[n] < str2[n] es.: thrill è minore di throw 2. se str1 è più corta di str2 e tutti i caratteri di str1 sono uguali ai corrispondenti caratteri di str2, allora str1 è minore di str2 es.: joy è minore di joyous 30
31 Il confronto tra stringhe è utile per ordinare un elenco di stringhe (es. con il selection sort): Confronto (nella funzione get_min_range) tra numeri if (list[i] < list[first])... tra stringhe if (strcmp(list[i], list[first]) < 0)... 31
32 Scambio di elementi tra numeri temp = list[index_of_min]; list[index_of_min] = list[fill]; list[fill] = temp; tra stringhe strcpy(temp, list[index_of_min]); strcpy(list[index_of_min], list[fill]); strcpy(list[fill], temp); 32
33 Input di stringhe controllato da sentinella scanf( %s, word); while (strcmp(word, SENT)!= 0) { /* process word */ } scanf( %s, word); 33
34 Array di puntatori Lo scambio di stringhe è un operazione costosa perchè richiede 3 operazioni di copiatura di stringhe. In questo caso è conveniente utilizzare un array ausiliario di puntatori a stringhe ed effettuare scambi di puntatori. In aggiunta a char list[numelem][strsiz]; si dichiara l array di puntatori char *alphap[numelem]; 34
35 alphap list t u l i p \0 m a r i g o r o s e \0 p e t u n i d a i s y \0 l i l y \0 l a d \0 \0 Visualizzazione della lista ordinata: for (i = 0; i < NUMELEM; i++) printf( %s\n, alphap[i]); L array ausiliario di puntatori è utile per mantenere due diversi ordinamenti in una lista (es.: ordine di registrazione e ordine alfabetico) 35
36 Input/output di caratteri L input di un carattere può essere effettuato nei seguenti modi: scanf( %c, ch); ch = getchar(); L output di un carattere può essere effettuato nei seguenti modi: printf( %c, a ); putchar( a ); 36
37 Analisi di caratteri La libreria ctype.h contiene le seguenti funzioni di analisi e conversione di caratteri: isalpha isdigit islower isupper ispunct isspace vera se l argomento è una lettera vera se l argomento è una cifra vera se l argomento è una lettera minuscola vera se l argomento è una lettera maiuscola vera se l argomento è un segno di punteggiatura vera se l argomento è uno spazio, un return o un tab 37
38 Conversione di caratteri tolower converte la lettera maiuscola fornita come argomento nella corrispondente lettera minuscola e ritorna quest ultima; se l argomento non è una lettera maiuscola, ritorna l argomento invariato toupper analogo da minuscola a maiuscola if (islower(ch)) printf( Capital %c = %c\n, ch, toupper(ch)); 38
39 Conversione da numero a stringa La funzione sprintf opera come la printf, ma anzichè visualizzare l output, lo inserisce nella stringa specificata: int day = 30, month = 1, year = 1999; char s[100]; sprintf(s, %d/%d/%d, day, month, year); s 3 0 / 1 / \0 39
40 Conversione da stringa a numero La funzione sscanf opera come la scanf, ma prende l input dalla stringa specificata come primo argomento: int num; double val; char word[10]; sscanf( hello, %d%lf%s, &num, &val, word); num 5 val 1.23 word h e l l o \0 40
41 /* returns the uppercase version of string s */ char * toupper_str(char *s, int len) { char temp[100]; int i; for (i = 0; i < len; i++) temp[i] = toupper(s[i]); } return(temp); Errore: ritorno un indirizzo di un area di memoria che è stata deallocata al ritorno dalla funzione. Le funzioni che creano una nuova stringa devono avere un parametro in cui ritornare la stringa creata. 41
42 int n; char ch, word[10]; Esempio scanf( %c%d%s, &ch, n, &word); Errore: word è un puntatore al primo carattere di una stringa, quindi non occorre &; n è una variabile quindi deve essere preceduta da &; versione corretta: scanf( %c%d%s, &ch, &n, word); 42
43 Esempio char first[8] = long, last[8] = beach ; strcat(first, last); Errore di overflow: first non ha dimensioni sufficienti a contenere la stringa long beach : first l o n g b e a I restanti caratteri, c, h e \0, vengono posti nelle locazioni di last. 43
44 Esempio char source[10] = hello, dest[10]; strncpy(dest, source, 4); Errore: la dimensione di word non è sufficiente a contenere il carattere nullo; ho dimenticato di aggiungere il carattere nullo al termine di dest. source h e l l o \0 dest h e l l 44
45 Esempio char second[10] = tulip, first[10] = lily ; if (first < second) printf( ok\n ); Errore: l operatore < non effettua il confronto tra stringhe ma tra gli indirizzi di memoria dei primi elementi delle stringhe; versione corretta: if (strcmp(first, second) < 0) printf( ok\n ); 45
46 Esempio char s1[10], s2[10], temp[10]; /* swap s1 and s2 */ temp = s1; s1 = s2; s2 = temp; Errore: l assegnamento di stringhe va effettuato mediante strcpy. Versione corretta: strcpy(temp, s1); strcpy(s1, s2); strcpy(s2, temp); 46
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
DettagliCaratteri e stringhe
Caratteri e stringhe Funzioni di libreria Introduzione Lunghezza di stringhe Classificazione di caratteri Trasformazione di caratteri Copia e concatenazione Confronto di stringhe Ricerca in stringhe Conversione
DettagliCaratteri e stringhe. Funzioni di libreria
Caratteri e stringhe Introduzione Lunghezza di stringhe Classificazione di caratteri Trasformazione di caratteri Copia e concatenazione Confronto di stringhe Ricerca in stringhe Conversione numero-stringa
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
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: 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ù
DettagliCARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe
CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe Caratteri e stringhe Caratteri Sono i blocchi costitutivi di ogni programma:
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
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
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)
DettagliCapitolo 8 - Caratteri e Stringhe
Capitolo 8 - Caratteri e Stringhe 8.2 Concetti fondamentali di stringhe e caratteri Caratteri Costanti di Carattere Un valore int rappresentato come un carattere fra apici 'z'rappresenta il valore intero
DettagliGestione 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
DettagliCorso sul linguaggio C Modulo Tipi di dato
Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di
Dettagli1 MANIPOLAZIONE DI STRINGHE ZERO-TERMINATE
1 MANIPOLAZIONE DI STRINGHE ZERO-TERMINATE 1.1 INTRODUZIONE In informatica una stringa è definita come una sequenza di caratteri, usualmente utilizzata per rappresentare informazioni in formato testuale.
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
DettagliLinguaggio C: Stringhe di caratteri e File
Linguaggio C: Stringhe di caratteri e File ESEMPIO: Lettura da tastiera e stampa a video di una sequenza di caratteri #include main() int c; printf("inserisci dei caratteri"); printf("(
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
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
DettagliStringhe. 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
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
DettagliI/O INTERATTIVO. scanf: quello che è indispensabile sapere printf: quello che è utile sapere
I/O INTERATTIVO scanf: quello che è indispensabile sapere printf: quello che è utile sapere Input da tastiera Funzioni disponibili (tra le altre): scanf getchar Schema di funzionamento Tastiera Sistema
DettagliCos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247
Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliLe stringhe. Le stringhe
Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è
DettagliStringhe di caratteri
Linguaggio C Stringhe di caratteri 1 Variabili e costanti stringa! Una stringa letterale è una sequenza di caratteri racchiusa tra doppi apici! Può essere scritta su più righe utilizzando il backslash
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliCaratteri e stringhe. Programmazione in C. Riferimenti al materiale
Caratteri e stringhe Programmazione in C Dati testuali Il tipo char Vettori di caratteri Operazioni elementari sulle stringhe Funzioni di libreria Esercizi proposti Sommario 2 Riferimenti al materiale
DettagliLinguaggio C La libreria standard
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C La libreria standard 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliPuntatori. Fondamenti di Programmazione
Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale
DettagliTipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.
Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned
DettagliFunzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti
Funzioni di I/O per numeri 2 Input e output di valori numerici Ver. 2.4.2 2012 - Claudio Fornaro - Corso di programmazione in C Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione
DettagliScrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliArray multidimensionali e stringhe
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi
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.
DettagliLinguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
Dettagli18/01/16. Soluzione degli esercizi svolti in aula alla lavagna. Seconda lezione. Cast
Soluzione degli esercizi svolti in aula alla lavagna Seconda lezione Cast 1 Esempio Scriviamo un programma che converte temperature Fahrenheit in temperature Celsius La formula è cels = (fahr 32) * 5 *
Dettagli06AZN - Fondamenti di Informatica (GES, LOP, ORG) Esercitazione di laboratorio n. 8 (1/12/09)
La presente esercitazione presuppone conoscenza delle seguenti parti del linguaggio C: main, return, commenti, variabili, identificatori, tipi scalari, assegnazione, costanti letterali, printf (base),
DettagliLaboratorio di informatica Ingegneria meccanica
Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,
DettagliLezione 6 Selection/Insertion Sort su interi e stringhe
Lezione 6 Selection/Insertion Sort su interi e stringhe Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Tutoraggio Venerdì 14
DettagliVariabili e Istruzioni
Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome
Dettaglistringhe array monodimensionali char. libreria < string.h>
Le stringhe Le stringhe sono array monodimensionali il cui tipo base è char. Il nucleo del linguaggio non prevede particolari istruzioni per il trattamento delle stringhe che potrebbero essere gestite
DettagliCapitolo 7 I puntatori in C
1 Capitolo 7 I puntatori in C 7.2 Dichiarazione e inizializzazione di puntatori Variabili puntatore Contengono gli indirizzi di memoria come valore Le normali variabili contengono uno specifico valore
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2013 2014 20.VI.2014
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2013 2014 20.VI.2014 VINCENZO MARRA Indice Esercizio 1 1 Leggere stringhe e caratteri 1 Esercizio 2 2
DettagliTipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010
Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi
DettagliGli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento
Linguaggio C Gli Operatori Gli Operatori Gli operatori sono simboli (sia singoli caratteri che loro combinazioni) specificano come devono essere manipolati gli operandi dell espressione Operatori aritmetici
DettagliTipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.
Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
DettagliCorso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Le variabili in C KP Cap. 3, pp. 95-129 Cap. 5, pp. 190-193 DD Cap. 9, pp.352-355 Tipi di dato Abbiamo già parlato delle variabili, ed
DettagliGestione delle stringhe in C
Gestione delle stringhe in C 1 Generalità Una stringa è un vettore di caratteri il cui ultimo elemento è un carattere terminatore (o di fine stringa), codificato dal carattere di codice 0 e rappresentato
DettagliArgomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili
Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto
DettagliCaratteri e stringhe
Caratteri e stringhe Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe 2 Vettori di caratteri Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di
DettagliMarta Capiluppi Dipartimento di Informatica Università di Verona
Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona Struttura di un programma C Versione minima Parte dichiarativa globale main() { Parte dichiarativa locale Parte
DettagliCaratteri e stringhe. Vettori di caratteri. Il tipo stringa Terminatore nullo Input/output di stringhe Politecnico di Torino 1
Caratteri e stringhe Il tipo stringa Terminatore nullo Input/output di stringhe 2 2006 Politecnico di Torino 1 Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di dato stringa
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliElementi del linguaggio di programmazione C
Elementi del linguaggio di programmazione C Violetta Lonati Università degli studi di Milano Dipartimento di Informatica PAS classe A042 Gennaio 2014 Violetta Lonati Elementi del linguaggio di programmazione
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011
Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali
DettagliRiferimenti al materiale
Programmazione in C Caratteri e stringhe Dati testuali Il tipo char Vettori di caratteri Operazioni elementari sulle stringhe Funzioni di libreria Esercizi proposti Sommario 2 Riferimenti al materiale
Dettagli4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
DettagliInput/Output di numeri
Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
DettagliARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.
3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il
DettagliVettori di caratteri. Caratteri e stringhe. Stringhe in C. Vettori di caratteri. char saluto[10] ; B u o n g i o r n o 4. Esempio.
Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe Caratteri e stringhe 2 Stringhe in C Vettori di caratteri Nel linguaggio C non è supportato esplicitamente alcun tipo di
DettagliI puntatori (richiamo)
I puntatori (richiamo) Puntatori Un puntatore è una variabile che assume come valore un indirizzo in memoria L uso dei puntatori permette di: mantenere riferimenti ad altre variabili (è un punto di accesso
DettagliOperazioni elementari sulle stringhe
Caratteri e stringhe Lunghezza Copia di stringhe Concatenazione di stringhe Confronto di stringhe Ricerca di sotto-stringhe Ricerca di parole 2 2006 Politecnico di Torino 1 Lunghezza di una stringa La
DettagliLinguaggio C - Funzioni
Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
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
DettagliLP1 Lezione 13: i File in C. Maurizio Tucci
LP1 Lezione 13: i File in C Maurizio Tucci mtucci@unisa.it 1 Il File: Dichiarazione Memorizzare dati in maniera non volatile In C (libreria ) è definito un tipo FILE che astrae il concetto di sequenza
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 27 novembre 2007 In C una stringa è rappresentata da una sequenza di caratteri terminante con il carattere nullo \0 il cui valore è
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
DettagliEsercizi per la preparazione. Alessandra Giordani Lunedì 13 maggio 2013
Esercizi per la preparazione all esame pratico Alessandra Giordani agiordani@disi.unitn.it Lunedì 13 maggio 2013 http://disi.unitn.it/~agiordani/ Date Appelli 18 giugno 2013 Pratica: 9.00-13.00 Aula pc
DettagliCapitolo 5 - Funzioni
Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente
DettagliEsercizi di programmazione in C
Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
DettagliEspressione di chiamata di funzione
Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è
DettagliApprofondimento : printf
Approfondimento : printf La funzione printf : stampa su standard input (video) dati complessi ha un formato articolato, molto potente ma spesso poco chiaro ha un numero di opzioni utili e poco conosciute
DettagliBreve riepilogo della puntata precedente:
Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta
DettagliLaboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011
Laboratorio di informatica Ingegneria Clinica Esercitazione 2 10 Ottobre 2011 Istruzioni Istruzioni di Input/Output Istruzioni di assegnamento Istruzioni di controllo Permettono di modificare il flusso
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono
Dettagli2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica.
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Le trappole del linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliEsercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
DettagliMatricola Nome Cognome Aula Fila (dalla cattedra) Posto (dalla porta)
Università degli Studi di Udine Corsi di laurea in Ing. Elettronica / Gestionale Fondamenti di programmazione / Inform. 1 23 novembre 2012 - Prova intermedia Matricola Nome Cognome Aula Fila (dalla cattedra)
Dettagligiapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
DettagliArray Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione
Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate
DettagliMini-dispensa sui puntatori in C
Mini-dispensa sui puntatori in C P. Zavarise Versione 1 ottobre 013 1 Valore e indirizzo di una variabile Ripassiamo il significato di dal punto di vista del programmatore. int a=; Viene creata una variabile
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
DettagliElementi di informatica
Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",
DettagliSTRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
DettagliTrattamento delle STRINGHE in C(++)
Trattamento delle STRINGHE in C(++) Le cose che qui vengono dette valgono sia per il linguaggio C che per il C++. Nel linguaggio C non esiste, a differenza di quel che avviene per altri linguaggi di programmazione
DettagliOperazioni di lettura/scrittura
Funzioni di I/O Operazioni di lettura/scrittura C++ fornisce numerose funzioni per leggere da uno stream di input (come cin) o scrivere su uno stream di output. Lettura: >>, getline, get, ignore etc. Scrittura:
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
DettagliEsercitazione 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
Dettaglipuntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
DettagliSoluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h>
Ricerca di un elemento in vettore Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall utente,
DettagliAlgoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
DettagliInput/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE
Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente
DettagliCORSO ACCESS PARTE IV
Creazione di un database / gestione tabelle Per creare un nuovo database Menu File Selezionare Nuovo Scegliere Database vuoto nella scheda Generale e confermare con Ok Impostare il nome e il percorso nella
Dettagli