Linguaggio C - Stringhe

Documenti analoghi
Linguaggio C - Stringhe

Esercitazione di Reti degli elaboratori

ELEMENTI DI INFORMATICA. Linguaggio C

Tipi strutturati in C. Stringhe

A. Ferrari. stringhe di caratteri In linguaggio C

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

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

Puntatori e array. Violetta Lonati

C: panoramica. Violetta Lonati

Introduzione al linguaggio C Puntatori

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe

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

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

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

STRINGHE: ARRAY DI CARATTERI! a p e \0

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

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

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

Tipi di dato STRUTTURATI

Caratteri e stringhe

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

Caratteri e stringhe

Lezione XI Le stringhe

RIPRENDIAMO I PUNTATORI

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

Lezione 8: Stringhe ed array multidimensionali

Elementi di Informatica

Introduzione al linguaggio C Dati aggregati

Linguaggio C: Stringhe Valeria Cardellini

Le stringhe. Le stringhe sono sequenze di caratteri,

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

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

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

Le stringhe. Le stringhe sono sequenze di caratteri,

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

L'Allocazione Dinamica della Memoria nel linguaggio C

Dati aggregati. Violetta Lonati

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Stringhe. Prof. Lorenzo Porcelli

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

Elementi di Informatica A. A. 2016/2017

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

Operazioni sulle stringhe



Informatica A (per gestionali) A.A. 2004/2005. Esercizi di programmazione C Stringhe Ricerca binaria


Esercizi. Stringhe. Stringhe Ricerca binaria

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

(Def. funzioni con parametri di tipo matrice)

Linguaggio C - sezione dichiarativa: costanti e variabili

Il linguaggio C. Puntatori e dintorni

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

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

Corso di Informatica

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

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

a.a Codice corso: 21012, 22010

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Argomenti. Array. Stringhe. Merge sort

Stringhe di caratteri

Librerie C. Corso di Linguaggi e Traduttori 1 AA

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

Struttura dei programmi e Variabili

Stringhe. Concetti chiave

Programmazione I - Laboratorio

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

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018

Lab 09 Strutture e programmi su più file

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Corso Programmazione

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

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

Algoritmi e basi del C

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

4 GLI ARRAY E LE STRINGHE

Introduzione al C. Lez. 1 Elementi

Sono variabili il cui valore corrisponde ad un indirizzo di memoria. Puntatori

CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe

Introduzione al C. Unità 8 Stringhe

Stringhe in C. Emilio Di Giacomo

Esempio: Mergesort. void mergesort(int *a, int *b, int l, int r) { int i,j,k,m;

Stringhe: vettori di caratteri con terminatore

Struttura di un. Struttura dei programmi C

Introduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso

Array. Aggragati di variabili omogenee...

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

Il linguaggio C. Notate che...

Matrici (vettori multidimensionali)

PROGRAMMAZIONE AVANZATA JAVA E C

Algoritmi e basi del C Struttura di un programma

I Dati Strutturati ed il Linguaggio C

Nuovi tipi di dato e. Alessandra Giordani Lunedì 26 marzo

Transcript:

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 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 utilizzabile per i caratteri è 19 caratteri (un carattere deve essere riservato obbligatoriamente al carattere terminatore) La lunghezza effettiva di una stringa dipende dalla posizione del carattere terminatore Corso di Informatica prof. Rio Chierego 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 e può essere assegnato nella dichiarazione I singoli apici indicano il singolo carattere char miastringa [20] = la mia stringa ; Il carattere terminatore viene automaticamente inserito dal linguaggio 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 prof. Rio Chierego 2

Accesso ai caratteri Essendo una stringa un array di caratteri posso accedere ai suoi elementi anche singolarmente miastringa[0]= l ; 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 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 prof. Rio Chierego 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 (struttura dati a carattere STATICO) È il contenuto della variabile miastringa che può variare anche a tempo di esecuzione ma non può essere mai superiore a 19 Corso di Informatica prof. Rio Chierego 4

Copia di una stringa Come per tutti gli array, date due stringhe s1 ed s2 con DIM elementi la seguente assegnazione in C non produce la copia della stringa s2 in s1 a = b; (N.B. istruzione errata) È necessaria la copia della stringa s2 in s1 elemento per elemento for (i = 0; i<dim; i++ a[i] = b[i]; Corso di Informatica prof. Rio Chierego 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 prof. Rio Chierego 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 assegnazione c è l invocazione ad una funzione Indica che il risultato dell funzione viene inserito nella variabile a sinistra dell operatore di assegnazione Corso di Informatica prof. Rio Chierego 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 prof. Rio Chierego 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 prof. Rio Chierego 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 prof. Rio Chierego 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 prof. Rio Chierego 11