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.

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

I tipi Strutturati.
LINGUAGGIO DI PROGRAMMAZIONE C
Stringhe Operare con le stringhe con laiuto degli array.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Puntatori in C e C++.
String c++.
Stringhe di caratteri In linguaggio C.
Un nuovo tipo di dati Gli array.
Algoritmi in C++ (1) da completare
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Caratteri e stringhe di caratteri
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.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e Puntatori Marco D. Santambrogio – Ver. aggiornata al 18 Marzo 2013.
Process synchronization
Allocazione dinamica della memoria
Laboratorio di Linguaggi lezione VI: puntatori 2/3 Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN.
Corso di Informatica Applicata Lezione 6
Funzioni di Libreria per le stringhe DICHIARAZIONI CONTENUTE NEL FILE: char *strcpy( char *dest, const char *sorg ); Copia sorg in dest, incluso il carattere.
Lab. Calc. AA 2005/061 puntatori. Lab. Calc. AA 2005/062 Attributi di un oggetto nome o identificatore; tipo o classe; valore o valori; indirizzo;
1 laboratorio di calcolo II AA 2003/04 seconda settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
Politecnico di Milano Esercizi Stringhe Ricerca binaria.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
I File.
Il Linguaggio C.
Le funzioni.
Java base III: Array e Stringhe
AN FI Array Array in Java. AN FI Array Dichiarazione di array in Java [ ]; //oppure u [] ; int a[]; int[] a; u La dimensione non è specificata.
PUNTATORI Un puntatore è una variabile destinata a contenere lindirizzo di unaltra variabile Vincolo di tipo: un puntatore a T può contenere solo lindirizzo.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Unità Didattica 3 Linguaggio C
Programmazione di Calcolatori
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
CORSO DI PROGRAMMAZIONE II Lezione 22
s STRINGHE DI CARATTERI a p e \0
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Puntatori e Stringhe.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
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.
CORSO DI PROGRAMMAZIONE II
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
ALLOCAZIONE STATICA: LIMITI Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente –la loro esistenza deve essere prevista e.
Il linguaggio C Puntatori e dintorni.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Transcript della presentazione:

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 e le stringhe!!! le funzioni per la manipolazione delle stringhe falliscono se applicate a vettori di char senza il terminatore (accedono oltre la memoria allocata...) una stringa costante viene definita da una sequenza di caratteri tra doppi apici “Questa e’ una stringa costante” nel caso delle stringhe costanti, non è necessario indicare \0 (viene automaticamente assegnato)

Stringhe char message[] = “Corso di C++”; equivale a alternativamente char message[80] = “Corso di C++”;

Stringhe La stringa deve essere inizializzata con la massima lunghezza che verrà utilizzata Non si possono fare assegnazioni del tipo message = “Altro Corso”; in quanto message è un lvalue non modificabile coincidente con l’indirizzo base del vettore di char! modificando il vettore bisogna ricordarsi il terminatore

Stringhe char message[] = “Corso di C++”; cout << message << “\n”; // stampa “Corso di C++” message[0]=‘C’; message[1]=‘I’; message[2]=‘A’; message[3]=‘O’; cout << message << “\n”; // stampa “CIAO di C++” message[4]=‘\0’; cout << message << “\n”; // stampa “CIAO”

Stringhe le funzioni per la manipolazione delle stringhe sono prototipate in <string.h> char * strcpy(char *string1, const char *string2); copia una stringa (compreso il terminatore) da string 2 a string1, restituendo anche l’indirizzo della stringa di destinazione (string1)

Stringhe #include <string.h> char message[80]; strcpy(message,”Corso di C++”); cout << message << “\n”; strcpy(message,”CIAO”); strcat(message, “\nFine del messaggio\n”); cout << message;

Stringhe Attenzione a come si occupa la memoria!!!!! //forma 1 char *pt; pt = “Corso di C++”; //forma 2 char *pt = “Corso di C++”; //forma 3 char pt[] = “Corso di C++”;

Stringhe Nel primo caso viene prima dichiarato il puntatore e poi allocata memoria per contenere la costante “Corso di C++” e viene indirizzato il puntatore Nel secondo caso viene dichiarato il puntatore e allocata la memoria contemporaneamente Nel terzo caso, viene inizializzato un vettore di lunghezza sufficiente a contenere la stringa indicata, che poi può essere anche modificata

Stringhe Attenzione a char *string1; char *string2; string1 = “Corso di C++”; string2= “C++”; il compilatore potrebbe far puntare string2 ad un indirizzo della memoria puntata da string1

Esempi di manipolazione di stringhe: strcpy strcpy(char* s, char* t) { while((*s = *t) != ‘\0’) s++; t++; }

Esempi di manipolazione di stringhe: strcmp strcmp(char s[], char t[]) { int i; i = 0; while(s[i] == t[i]) if(s[i++] == ‘\0’) return 0; return s[i]-t[i]; }

Esempi di manipolazione di stringhe: strcmp strcmp(char* s, char* t) { for( ; *s = = *t; s++,t++;) if(*s = = ‘\0’) return 0; } return *s - *t;