Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata

Slides:



Advertisements
Presentazioni simili
PROGRAMMARE IN PASCAL (le basi)
Advertisements

Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Introduzione agli stream e alle classi
Corso di Informatica Applicata Lezione 6
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Lezione VIII Laboratorio di Programmazione. Streams formattati In C è sfruttata linformazione riguardo al tipo di un certo dato per impostare la formattazione.
Lordinamento di tre numeri interi. acquisisci a,b,c (a > b) AND (a > c)(b > a) AND (b > c) (c > a) AND (c > b) Scrivi c,b,aScrivi b,c,aScrivi c,a,bScrivi.
Passaggio di parametri per indirizzo
1 Il linguaggio C Puntatori e dintorni. 2 Puntatori : idea di base In C è possibile conoscere e denotare l’indirizzo della cella di memoria in cui è memorizzata.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
Stringhe Una stringa è un vettore di char con un carattere costante \0 che indica la fine della stringa il terminatore rende differenti gli array di char.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
Fondamenti di Informatica A - Massimo Bertozzi LE FUNZIONI.
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Process synchronization
Process synchronization
ELEMENTI DI INFORMATICA
Ambienti di Programmazione per il Software di Base
La classe String Una stringa è una sequenza di caratteri
Introduzione al linguaggio C
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Process synchronization
Tutorato Elementi di Informatica 2013
10. Programmazione Ricorsiva Ing. Simona Colucci
Commenti Ogni riga che comincia con il simbolo # non viene letta dall’interprete per cui rappresenta un modo per commentare il listato # Questo è un esempio.
MATRICI (ARRAY) IN MATLAB/OCTAVE
Process synchronization
Process synchronization
L’AMBIENTE CODE BLOCKS E L’IO
I FILES AD ACCESSO SEQUENZIALE
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Ambienti di Programmazione per il Software di Base
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
La struttura dei primi programma in C
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Lucidi della Pof.ssa Pazienza
comprensione e modifica di codice
APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C Allocazione dinamica della memoria
Programmazione e Laboratorio di Programmazione
Fogli di Calcolo Elettronici
APPUNTI SUL LINGUAGGIO C
Programmazione e Laboratorio di Programmazione
Operatori – numeri pseudocasuali - costanti
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Passaggio di parametri per indirizzo
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
La programmazione strutturata
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri.
Corso di Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Programmazione Procedurale
Transcript della presentazione:

Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata Questo Laboratorio è una integrazione alla Parte 8 del corso sulla Memoria dinamica

Vantaggi delle stringhe in C++ rispetto alle stringhe in C In C le stringhe sono vettori di caratteri con terminatore ‘\0’. Alcuni esempi: char s[] = “Ciao Mondo”; /* una stringa e’ un array iniz. con caratteri */ cout << s; cin >> s; cout << (s == &s[0]); /*s e’ identificato con l’indirizzo del suo primo carattere */ char *s = “Ciao”; /* puntatore a una stringa costante */ In C++ la lunghezza della stringa e’ nella stringa stessa. Le stringhe non richiedono il terminatore di stringa

Opzioni classe STRING di C++ Occorre includere la libreria: <string> Esempi di inizializzazioni in C++: string s1; /*se non inizializzata la stringa s1 e’ vuota, anziche’ contenere un indirizzo casuale */ string s2 = “Ciao Mondo”; /* stringa inizializzata con una constante */ string s3(50,’X’); /* stringa formata da 50 caratteri X */ string s4 = s2; /* stringa copia carattere per carattere di s2 */ string s5(s2,5,2); /* contiene i 2 caratteri ‘Mo’ dalla posiz. 5 in s2.*/

Accesso ai singoli caratteri in C++ In C++ usiamo la stessa sintassi del C (ovvero la notazione degli array) per accedere ai singoli caratteri: string s = “ABCDEFG”; char c = s[2]; //assegna ‘C’ alla variabile c s[4] = ‘*’; // cambia s in “ABCD*FG”

Lunghezza di una stringa La classe string in libreria permette di usare come segue la funzione length() per il calcolo della lunghezza di una stringa. cout << s.length() << endl;

Operatori di confronto tra stringhe In C gli operatori <, ==, >=, … confrontano gli indirizzi delle strnghe e sono privi di utilità In C++, invece, <, ==, >=, … funzionano come visto fino ad ora per gli altri tipi di dati, confrontando le stringhe rispetto all’ordine alfabetico (quello del vocabolario). If (s1<s2) then … If (s1 == s2) then … If (s1 >= s2) then …

Concatenazione di stringhe In C++ si usano gli operatori standard + e +=: s1 = s + “ PIPPO”; s2 += s1; /* sta per s2=s2+s1; */ s2 = s3 + s4; s3 = s2; /* in C++ e’ la copia “carattere per carattere” della stringa s2 sulla stringa s3, mentre in C sarebbe la copia del solo indirizzo di s2 su s3 */ NB: In s2=s2+s1, la dimensione della destinazione s2, che aumenta, viene estesa automaticamente dal linguaggio!

Individuare delle sottostringhe In C++ si usa la funziona substr() che prende (oltre alla stringa da cui estrarre la sottostringa) due parametri interi: Posizione del primo carattere della sottostringa; Numero di caratteri della sottostringa; string s = “ABCDEFG”; string s1 = “FGH”; s1 = s.substr(3,3); /* s1 e’ la sottostringha “DEF” che inizia dalla posizione 3 di s e termina dopo 3 caratteri */

Ricerca di una sottostringa Esempio. Se s1 = “XabcYZabcW” allora la prima occorrenza di “abc” come sottostringa di s1 è nella posizione 1, mentre se s1=“XabYZabW” allora “abc” non è una sottostringa di s1. In C++ si usa la funzione find() che restituisce la posizione della prima occorrenza della sottostringa cercata, oppure il messaggio string::npos se non la sottostringa non viene trovata. pos = s1.find(“abc”); if (pos == string::npos) cout << “non trovata”<<endl; else cout<< pos << endl;

Lettura di una stringa In C++ le stringhe vengono lette da tastiera con cin: string s; cin >> s; La stringa viene copiata sino all’inserimento di uno spazio vuoto, dunque è possibile inserire singole parole ma non intere frasi; Se si desidera leggere una linea intera si utilizza la funzione getline(): string s; getline(cin, s); Copia fino al carattere di fine riga ‘\n’