Linguaggio C - Stringhe



Documenti analoghi
Linguaggio C - Stringhe

Sistema operativo: Gestione della memoria

Le stringhe. Le stringhe

Gestione delle stringhe in C

Gli algoritmi: definizioni e proprietà

Funzioni in C. Violetta Lonati

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp KP Cap. 6 pp

Introduzione alla programmazione in C

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

ZZZ01 Esercizi Vari. Esercizi per preparazione alla prova pratica di laboratorio

Sistema operativo: Gestione dei processi

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Breve riepilogo della puntata precedente:

Allocazione dinamica della memoria - riepilogo

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

LINGUAGGI DI PROGRAMMAZIONE

Verifica che una grammatica sia Context Free nel GrammaReader

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza

Esercitazione di Reti degli elaboratori

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

Record in C: il costruttore struct.

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Funzioni. Il modello console. Interfaccia in modalità console

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Fondamenti di Informatica 2

Caratteri e stringhe Esercizi risolti

Esercizio 1. Esercizio 1

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Dispensa YACC: generalità

Header. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

La selezione binaria

Linguaggio C Compilazione, linking e preprocessor

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Introduzione al Linguaggio C

Laboratorio di programmazione

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Linguaggio C. Fondamenti. Struttura di un programma.

Corso di Fondamenti di Informatica

Trattamento delle STRINGHE in C(++)

Variabili e tipi di dato

Calcolare il massimo di una lista

Appello di Informatica B

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili

Algoritmi di Ricerca. Esempi di programmi Java

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Linguaggio C - Funzioni

Gestione dei File. dischi nastri cd

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

VARIABILI LOCALI E GLOBALI (ESTERNE)

Introduzione al linguaggio C Gli array

costruttori e distruttori

La gestione della memoria

Compilatore risorse display grafico LCD serie IEC-line

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Inizializzazione, Assegnamento e Distruzione di Classi

puntatori Lab. Calc. AA 2007/08 1

PROCEDURA DI COMPILAZIONE DEL REGISTRO DELLE LEZIONI DALL AREA WEB PRIVATA DEL DOCENTE

Concetto di Funzione e Procedura METODI in Java

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

RICERCA DI UN ELEMENTO

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Alfabeto ed elementi lessicali del linguaggio C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

4. Un ambiente di sviluppo per Java

I puntatori e l allocazione dinamica di memoria

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Compito di Fondamenti di Informatica

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Alcune regole di base per scrivere un programma in linguaggio C

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

10 - Programmare con gli Array

Codifica: dal diagramma a blocchi al linguaggio C++

Introduzione al Python

Tipi di dato-prima parte

Le variabili. Olga Scotti

Esame del 3 febbraio 2010

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

GESTIONE INFORMATICA DEI DATI AZIENDALI

Esercizi di programmazione in C

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Bontà dei dati in ingresso

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

La ricorsione. Politecnico di Milano Sede di Cremona

Transcript:

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 soli fini didattici previa autorizzazione dell autore. E severamente vietata la riproduzione anche parziale e la vendita. 29/10/2008

Array di caratteri Una stringa è: Un array di caratteri Termina con il carattere \0 (carattere terminatore) Essendo un array di caratteri la sua dichiarazione è del tipo char miastringa [20]; miastringa è il nome della variabile che contiene la stringa La lunghezza MASSIMA della stringa è 19 caratteri (un carattere deve essere riservato al carattere terminatore) La lunghezza effettiva di una stringa dipende dalla posizione del carattere terminatore Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 1

Inizializzazione di una stringa Una variabile di tipo stringa è l unico tipo di array che è possibile inizializzare esplicitamente in blocco Il valore della stringa deve essere racchiuso tra doppi apici I singoli apici indicano il singolo carattere miastringa= la mia stringa ; Il carattere terminatore viene automaticamente inserito dal C l a m i a s t r i n g a \0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 2

Accesso ai caratteri Essendo una stringa un array di caratteri posso accedere ai suoi elementi anche singolarmente miastringa[0]= 4 ; 4 a m i a s t r i n g a \0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Devo accertarmi che io acceda ai soli caratteri precedenti al terminatore I caratteri inseriti dopo il terminatore non generano errore ma sono semplicemente ignorati miastringa[15]= 4 ; l a m i a s t r i n g a \0 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 3

Lunghezza di una stringa Per calcolare la lunghezza della stringa basta scandire l array e cercare il carattere terminatore int main() { int i; i=0; while (miastringa[i] = \0 ) { i++; printf( La lunghezza è %d, i); La dimensione della variabile miastringa è sempre di 20 caratteri ed è fissato a tempo di compilazione come tutti gli array È il contenuto della variabile miastringa che può variare anche a tempo di esecuzione ma non può essere mai superiore a 19 Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 4

Copia di una stringa Come per tutti gli array, date due stringhe a e b il seguente assegnamento non produce una copia a = b; È necessaria la copia elemento per elemento for (i = 0; i<dim; i++) a[i] = b[i]; Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 5

Libreria string.h In C è presente una libreria per la manipolazione delle stringhe Nella libreria sono definite alcune funzioni utili alla gestione delle stringhe Noi analizzeremo: strlen(char stringa[]): restituisce la lunghezza di una stringa strcpy(char stringa1[], char stringa2[]): copia stringa1 in stringa2 strcat(char stringa1[], char stringa2[]): accoda a stringa1 il contenuto di stringa2 strcmp(char stringa1[], char stringa2[]): confronta stringa1 e stringa2 Per poter utilizzare le funzioni la libreria deve essere opportunamente inclusa nella sezione dichiarativa globale #include <string.h> Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 6

strlen Restituisce la lunghezza della stringa int main () { char s[10]= pippo ; int l; l = strlen(p); printf( La lunghezza della stringa è: %d, l); return 0; A destra dell operatore di assegnamento c è l invocazione ad una funzione Indica che il risultato dell funzione viene inserito nella variabile a sinistra dell operatore di assegnamento Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 7

strcpy Copia il contenuto della stringa passata come secondo parametro nella stringa passata come primo parametro int main () { char sorgente[10]= pippo ; char destinazione[10]; int l; strcpy(destinazione, sorgente); printf( Il valore di destinazione è: %s, destinazione); return 0; L eventuale contenuto di destinazione precedente all assegnamento viene perso Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 8

strcat Accoda il contenuto della stringa passata come secondo parametro nella stringa passata come primo parametro int main () { char sorgente[10]= mamma ; char destinazione[10]= ciao ; int l; strcpy(destinazione, sorgente); printf( Il valore di destinazione è: %s, destinazione); return 0; Devo essere certo che la dimensione massima della stringa destinazione sia sufficiente ad ospitare la nuova stringa Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 9

strcmp 1/2 Confronta il contenuto di due stringhe Restituisce: 0 se le stringhe sono identiche <0 se la stringa passata come primo parametro è minore della atringa passata come secondo paramentro >0 se la stringa passata come primo parametro è maggiore della atringa passata come secondo paramentro La relazione d ordine tra stringhe è definita dalla relazione d ordine della codifica ASCII dei caratteri che la compongono 0 < 9 < A < Z < a < z Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 10

strcmp 2/2 int main () { char s1[10]= mamma ; char s2[10]= ciao ; int c; c = strcmp(s1, s2); if (c==0) { printf( le due stringhe sono uguali ); elseif (c<0) { printf( s1 < s2 ); else { printf( s1 > s2 ); return 0; Corso di Informatica e CAD (c.i.) ICA LC - prof. Plebani 11