Menu
Coddy logo textTech

Stringhe come array di char

Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 12 di 63.

In C, non esiste un tipo di dati stringa integrato come quello che potresti trovare in altri linguaggi di programmazione. Le stringhe sono invece rappresentate come array di caratteri. Questo concetto fondamentale è essenziale per comprendere come viene gestito il testo nella programmazione in C.

Una stringa in C è semplicemente una sequenza di caratteri memorizzati in posizioni di memoria consecutive. Per creare una stringa, dichiari un array di caratteri abbastanza grande da contenere tutti i caratteri necessari, più uno spazio extra per uno speciale carattere terminatore.

char greeting[6];  // Può contenere 5 caratteri + il terminatore
char message[20]; // Può contenere fino a 19 caratteri + il terminatore

Il modo più pratico per lavorare con le stringhe è inizializzarle direttamente con un valore letterale di stringa quando dichiari l’array. C gestisce automaticamente i dettagli della memorizzazione di ogni carattere nell’array:

char greeting[6] = "Hello";
// Questo memorizza: 'H', 'e', 'l', 'l', 'o', più un terminatore speciale

Puoi anche lasciare che C determini automaticamente la dimensione dell'array omettendo la specifica della dimensione quando lo inizializzi con un valore letterale stringa:

char greeting[] = "Hello";  // C imposta automaticamente la dimensione a 6

Capire che le stringhe sono array di caratteri è fondamentale perché spiega come C gestisce i dati testuali e ti prepara a lavorare con le funzioni di manipolazione delle stringhe che operano su questi array di caratteri.

challenge icon

Sfida

Facile

Scrivi un programma C che mostri come creare e utilizzare array di caratteri per memorizzare stringhe. Il tuo programma deve:

  1. Dichiarare un array di caratteri chiamato greeting con spazio sufficiente per contenere la stringa "Hello" (ricorda di considerare il terminatore nullo)
  2. Inizializzare l'array greeting con il valore letterale stringa "Hello"
  3. Dichiarare un secondo array di caratteri chiamato message con 20 elementi
  4. Inizializzare l'array message con il valore letterale stringa "Welcome"
  5. Dichiarare un terzo array di caratteri chiamato word senza specificarne la dimensione e lasciare che C la determini automaticamente inizializzandolo con "Programming"
  6. Stampare tutte e tre le stringhe usando printf con lo specificatore di formato %s
  7. Stampare la dimensione di ciascun array usando sizeof per mostrare quanta memoria occupa ogni array di caratteri

L'output deve mostrare i risultati nel seguente formato:

greeting: Hello
message: Welcome
word: Programming
Size of greeting: 6
Size of message: 20
Size of word: 12

Questa sfida verifica la tua comprensione di come dichiarare array di caratteri per memorizzare stringhe, di come i valori letterali stringa vengano terminati automaticamente con un carattere nullo quando sono assegnati ad array di caratteri e di come C calcoli automaticamente le dimensioni degli array quando ometti di specificarle durante l'inizializzazione.

Provalo tu

#include <stdio.h>

int main() {
    // TODO: Scrivi qui il tuo codice
    // Dichiara e inizializza gli array di caratteri come specificato nell'esercizio
    
    // Stampa le stringhe e le loro dimensioni
    printf("greeting: %s\n", greeting);
    printf("message: %s\n", message);
    printf("word: %s\n", word);
    printf("Size of greeting: %lu\n", sizeof(greeting));
    printf("Size of message: %lu\n", sizeof(message));
    printf("Size of word: %lu\n", sizeof(word));

    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online