Caratteri e stringhe. Funzioni di libreria
|
|
|
- Albana Ruggeri
- 9 anni fa
- Просмотров:
Транскрипт
1 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 Politecnico di Torino 1
2 Librerie sulle stringhe La libreria standard C dispone di molte funzioni predisposte per lavorare su caratteri e stringhe Tali funzioni si trovano prevalentemente in due librerie: <ctype.h> funzioni operanti su caratteri <string.h> funzioni operanti su stringhe Tutte le funzioni di libreria accettano e generano stringhe correttamente terminate Politecnico di Torino 2
3 Suggerimenti Quando possibile, utilizzare sempre le funzioni di libreria Sono più veloci Sono maggiormente collaudate In ogni caso, ricordare che è sempre possibile effettuare le operazioni direttamente: Sui caratteri, ricorrendo alla codifica ASCII Sulle stringhe, ricorrendo alla rappresentazione come vettori di caratteri 5 Rappresentazione strlen #include <string.h> s : stringa int : la lunghezza della stringa Calcola la lunghezza della stringa s lun = strlen(s) ; Politecnico di Torino 3
4 Convenzioni Assumiamo che nel seguito di questa lezione siano valide le seguenti definizioni const int MAX = 20 ; char s[max] ; char s1[max] ; char s2[max] ; char r[max] ; int lun ; int n ; char ch ; float x ; Politecnico di Torino 4
5 Lunghezza di stringhe Definite in <string.h> Determina la lunghezza di una stringa data strlen 9 strlen strlen #include <string.h> s : stringa int : la lunghezza della stringa Calcola la lunghezza della stringa s lun = strlen(s) ; Politecnico di Torino 5
6 Classificazione di caratteri Definite in <ctype.h> Analizzano un singolo carattere, identificandone la tipologia Lettera Maiuscola Minuscola Cifra Punteggiatura isalpha isupper islower isdigit isalnum isxdigit ispunct isgraph isprint isspace iscntrl Politecnico di Torino 6
7 isalpha isalpha Vero/falso Ritorna vero se il carattere ch è una lettera maiuscola o minuscola (A...Z, a...z), falso altrimenti if(isalpha(ch)) {... } 13 isupper isupper Vero/falso Ritorna vero se il carattere ch è una lettera maiuscola (A...Z), falso altrimenti if(isupper(ch)) {... } Politecnico di Torino 7
8 islower islower Vero/falso Ritorna vero se il carattere ch è una lettera minuscola (a...z), falso altrimenti if(islower(ch)) {... } 15 isdigit isdigit Vero/falso Ritorna vero se il carattere ch è una cifra numerica (0...9), falso altrimenti if(isdigit(ch)) {... } Politecnico di Torino 8
9 isalnum isalnum Vero/falso Ritorna vero se il carattere ch è una lettera oppure una cifra numerica, falso altrimenti. Equivalente a isalpha(ch) isdigit(ch) if(isalnum(ch)) {... } 17 isxdigit isxdigit Vero/falso Ritorna vero se il carattere ch è una una cifra numerica oppure una lettera valida in base 16 (a...f, A...F), falso altrimenti. if(isxdigit(ch)) {... } Politecnico di Torino 9
10 ispunct ispunct Vero/falso Ritorna vero se il carattere ch è un simbolo di punteggiatura [\]^_`{ }~), falso altrimenti. if(ispunct(ch)) {... } 19 isgraph isgraph Vero/falso Ritorna vero se il carattere ch è un qualsiasi simbolo visibile (lettera, cifra, punteggiatura), falso altrimenti. if(isgraph(ch)) {... } Politecnico di Torino 10
11 isprint isprint Vero/falso Ritorna vero se il carattere ch è un qualsiasi simbolo visibile oppure lo spazio, falso altrimenti. if(isprint(ch)) {... } 21 isspace isspace Vero/falso Ritorna vero se il carattere ch è invisibile (spazio, tab, a capo), falso altrimenti. if(isspace(ch)) {... } Politecnico di Torino 11
12 iscntrl iscntrl Vero/falso Ritorna vero se ch è un carattere di controllo (ASCII , 127), falso altrimenti. if(iscntrl(ch)) {... } 23 Vista d insieme A...F a...f Caratteri di controllo isdigit isxdigit G...Z g...z Tab Newline isupper islower iscntrl isalpha isalnum Spazio isspace!"#$%&'( )*+,-./: ;<=>?@[\ ]^_`{ }~ ispunct isgraph isprint Politecnico di Torino 12
13 Trasformazione di caratteri Definite in <ctype.h> Convertono tra lettere maiuscole e lettere minuscole toupper tolower Politecnico di Torino 13
14 toupper toupper char : carattere maiuscolo Se ch è una lettera minuscola, ritorna l equivalente carattere maiuscolo, se no ritorna ch stesso for(i=0; s[i]!=0; i++) s[i] = toupper(s[i]) ; 27 tolower tolower char : carattere maiuscolo Se ch è una lettera maiuscola, ritorna l equivalente carattere minuscolo, se no ritorna ch stesso for(i=0; s[i]!=0; i++) s[i] = tolower(s[i]) ; Politecnico di Torino 14
15 Copia e concatenazione Definite in <string.h> Trasferiscono il contenuto di una stringa in un altra Sostituendolo Accodandolo strcpy strncpy strcat strncat Politecnico di Torino 15
16 strcpy strcpy #include <string.h> dst : stringa src : stringa nessuno utile Copia il contenuto della stringa src all interno della stringa dst (che deve avere lunghezza sufficiente). strcpy(s1, s2) ; strcpy(s, "") ; strcpy(s1, "ciao") ; 31 strncpy strncpy #include <string.h> dst : stringa src : stringa n : numero max caratteri nessuno utile Copia il contenuto della stringa src (massimo n caratteri) all interno della stringa dst. strncpy(s1, s2, 20) ; strncpy(s1, s2, MAX) ; Politecnico di Torino 16
17 strcat strcat #include <string.h> dst : stringa src : stringa nessuno utile Accoda il contenuto della stringa src alla fine della stringa dst (che deve avere lunghezza sufficiente). strcat(s1, s2) ; strcat(s1, " ") ; 33 strncat strncat #include <string.h> dst : stringa src : stringa n : numero max caratteri nessuno utile Accoda il contenuto della stringa src (massimo n caratteri) alla fine della stringa dst. strncat(s1, s2, 10) ; Politecnico di Torino 17
18 Confronto di stringhe Definite in <string.h> Confrontano due stringhe sulla base dell ordine lessicografico imposto dalla tabella dei codici ASCII strcmp strncmp Politecnico di Torino 18
19 strcmp strcmp #include <string.h> s1 : stringa s2 : stringa int : risultato confronto Risultato <0 se s1 precede s2 Risultato ==0 se s1 è uguale a s2 Risultato >0 se s1 segue s2 if(strcmp(s, r)==0) {...} while(strcmp(r,"fine")!=0) {...} 37 strncmp strncmp #include <string.h> s1 : stringa s2 : stringa n : numero max caratteri int : risultato confronto Simile a strcmp, ma confronta solo i primi n caratteri, ignorando i successivi. if(strncmp(r, "buon", 4)==0) (buongiorno, buonasera, buonanotte) Politecnico di Torino 19
20 Ricerca Definite in <string.h> Ricercano all interno di una stringa data Se compare un carattere Se compare una sotto-stringa Se compare una sequenza qualsiasi composta di caratteri dati strchr strstr strspn strcspn Politecnico di Torino 20
21 strchr strchr #include <string.h> s : stringa ==NULL oppure!=null Risultato!=NULL se il carattere ch compare nella stringa. Risultato ==NULL se non compare. if(strchr(s, '.')!=NULL)... if(strchr(s, ch)==null) strstr strstr #include <string.h> s : stringa r : stringa ==NULL oppure!=null Risultato!=NULL se la sotto-stringa r compare nella stringa s. Risultato ==NULL se non compare. if(strstr(s, "xy")!=null)... if(strstr(s, s1)==null) Politecnico di Torino 21
22 strspn strspn #include <string.h> s : stringa r : stringa int : lunghezza sequenza iniziale Calcola la lunghezza della parte iniziale di s che è composta esclusivamente dei caratteri presenti in r (in qualsiasi ordine). lun = strspn(s, " ") ; lun = strspn(s, " :,;.") ; 43 strcspn strcspn #include <string.h> s : stringa r : stringa int : lunghezza sequenza iniziale Calcola la lunghezza della parte iniziale di s che è composta esclusivamente da caratteri non presenti in r (in qualsiasi ordine). lun = strcspn(s, " ") ; lun = strcspn(s, " :,;.") ; Politecnico di Torino 22
23 Conversioni numero-stringa Definite in <stdlib.h> Mettono in relazione un valore numerico (intero o reale) con la sua rappresentazione come caratteri all interno di una stringa "372" 372 (int) "3.0" 3.0 (float) atoi atof In futuro: sscanf sprintf Politecnico di Torino 23
24 atoi atoi #include <stdlib.h> s : stringa int : valore estratto Analizza la stringa s ed estrae il valore intero in essa contenuto (a partire dai primi caratteri). n = atoi(s) ; n = atoi("232abc") ; 47 atof atof #include <stdlib.h> s : stringa double/float : valore estratto Analizza la stringa s ed estrae il valore reale in essa contenuto (a partire dai primi caratteri). x = atof(s) ; x = atof("2.32abc") ; Politecnico di Torino 24
Caratteri 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
Stringhe in C. Emilio Di Giacomo
Stringhe in C Emilio Di Giacomo Stringhe Una stringa è una sequenza finita di caratteri Le stringhe sono un tipo di dati talmente importante e utile che fanno parte di quasi tutti i linguaggi di programmazione
STRINGHE: 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ù
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
Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' 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ù N-1
Elementi di Programmazione in C++
Chapter 1 Elementi di Programmazione in C++ 1.1 C++: Elementi di Base cat example05.design Comportamento: Il programma dovrebbe invitare l utente a immettere il raggio di un cerchio
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 \ };
char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; Libreria sulle stringhe libreria i string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra (strcpy
Caratteri e stringhe. Esercizi proposti. Esercizio Parola palindroma Esercizio Iniziali maiuscole Esercizio Alfabeto farfallino
Caratteri e stringhe Esercizio Parola palindroma Esercizio Iniziali maiuscole Esercizio Alfabeto farfallino 2 2006 Politecnico di Torino 1 Esercizio Parola palindroma Sia data una parola inserita da tastiera.
I puntatori e l allocazione dinamica di memoria. Esercizi risolti
I puntatori e l allocazione dinamica di memoria Esercizi risolti 1 Esercizio Si vuole realizzare un tipo struct, utilizzato per informazioni su operazioni di vendita, avente i seguenti campi: codice: numero
char* titolo= Libreria sulle stringhe Esempi: (strcpy) (strstr)... Laboratorio di Informatica L-A 1
char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; 1 Libreria sulle stringhe La libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra
Stringhe. Prof. Lorenzo Porcelli
Stringhe Prof. Lorenzo Porcelli definizione Una stringa è un vettore di caratteri terminato dal carattere nullo \0. Il carattere nullo finale permette di determinare la lunghezza della stringa. char vet[32];
char* titolo= { l, e,, s, t, r, i, n, g, h, e, \0 };
char* titolo= { l, e,, s, t, r, i, n, g, h, e, \0 }; 1 Libreria sulle stringhe libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra
Esercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
Linguaggio 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("(
Esercizi proposti. Caratteri e stringhe. Esercizio Parola palindroma. Esercizi proposti. Palindromia. Analisi. o t t o. m a d a m
Esercizio Parola palindroma Esercizio Iniziali maiuscole Esercizio Alfabeto farfallino Caratteri e stringhe 2 Esercizio Parola palindroma Sia data una parola inserita da tastiera. Si consideri che la parola
Lezione 8: Stringhe ed array multidimensionali
Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si
Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
Le 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" è
Esercizi. Stringhe. Stringhe Ricerca binaria
Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)
Lezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe
Lezione 19 e 20 - Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe Valentina Ciriani (2005-2008) Laboratorio di programmazione Valentina Ciriani
Esercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
Matrici Vettori di stringhe Esercizi risolti
Esercizi risolti 1 Esercizio: Concorso di intelligenza In un concorso di intelligenza, N giudici esprimono il loro giudizio su K candidati. Il giudizio è un valore numerico tra 0 e 5. Si scriva un programma
Stringhe. 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
Librerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comuni di I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
C: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
Il codice ASCII. I caratteri e le stringhe. Il codice ASCII standard. Il codice ASCII standard
I caratteri e le stringhe Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Il codice ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero
Dati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
Stringhe e tipi di dati strutturati
Stringhe e tipi di dati strutturati Marco D. Santambrogio [email protected] Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!
Caratteri 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
