Anteprima
Vedrai una selezione di 1 pagina su 5
Appunti Informatica - 1/2 Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

• Stringhe

Nel C le stringhe (sequenze ininterrotte di caratteri) sono realizzate mediante array di caratteri

Dichiarazione :

char luogo[100]; É un array atto a contenere massimo 100 caratteri di tipo char

• acquisizione di stringhe elemento per elemento

#include <stdio.h>

int main() {

int i;

char s[10];

// Acquisizione dei caratteri

for (i = 0; i < 10; i++) {

printf("\nInserire carattere %d: ", i + 1); Assorbe il carattere newline lasciato

scanf("%c", &s[i]); scanf("%*c"); da scanf

} Tasto invio

// Stampa dei caratteri

printf("\nCaratteri inseriti:\n");

for (i = 0; i < 10; i++) {

printf("%c\n", s[i]); Oppure si può usare fflush(stain)

}

return 0;

È possibile evitare di inserire una stringa carattere per carattere grazie alle funzioni

}

• scanf

• gets Str è già un indirizzo… è l’indirizzo del primo elemento &str[0], quindi scanf non

char str[10]; ha bisogno della &.

scanf("%s", str);

gets(str); Bisogna usare La libera #include <string.h>

Sia scanf("%s",…) che gets(…) delimitano la parte significativa (i caratteri inseriti dall’utente) con il

carattere speciale ‘\0’ (con codifica ASCII = 0).

Se a gets(luogo); digito: Milano in memoria verrà scritto "Milano\0".

Differenze

• scanf("%s",luogo); termina l’inserimento al primo spazio o invio.

• gets(luogo); termina l’inserimento al primo invio

Ecco cosa acquisiscono se digito: Piazza san Babila

• scanf("%s",luogo); "Piazza\0"

• gets(luogo); "Piazza san Babila\0"

• Dichiarazione stringa popolata

Array di caratteri: spesso chiamati stringhe quando rappresentano “caratteri da leggersi in fila”

Dichiarazione+inizializzazione di una stringa

char stringa[] = "word";

Il carattere nullo '\0' termina le stringhe

Perciò l’array stringa ha 5 elementi (non 4):

w o r d \0

Dichiarazione equivalente:

char stringa[] = {'w', 'o', 'r', 'd', '\0'};

Differenza tra 'x' e "x"

• 'x' costante carattere (rappresentata da un intero)

• “x" costante stringa, rappresentata da un array che contiene due caratteri: 'x' e '\0'

• calcolare lunghezza di una stringa

• senza libreri

È possibile calcolare la lunghezza di una stringa andando a contare gli elementi che precedono ‘\0’

#include <stdio.h>

int main() {

int len = 0;

char luogo[100];

// Lettura della stringa

printf("Inserisci un luogo: ");

scanf("%s", luogo);

// Calcolo della lunghezza della stringa

while (luogo[len] != '\0') { Len, la lunghezza della stringa

len++;

} incrementa finché il carattere nell’

array é diverso da \0

// Stampa della lunghezza

printf("%s è lunga %d caratteri\n", luogo, len);

return 0;

}

• Con libreria

#include <string.h>

len = strlen(luogo); Funzione per assegnare lunghezza di una stringa

Dettagli
Publisher
A.A. 2024-2025
5 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Alex2005N di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Rana Vincenzo.