0Pricing
C++ Academy · Lezione

std::string e array di caratteri in stile C

Confronti std::string moderno e i vecchi array di char terminati da null e scelga quando usare ciascuno.

std::string e array di caratteri in stile C è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.

Due modi per gestire il testo

C++ eredita le stringhe in stile C, ovvero array di char terminati da null, e aggiunge std::string dalla libreria standard. Usi quasi sempre std::string.

Stringhe in stile C

Una stringa in stile C è una sequenza di char che termina con un byte nullo '\0'. Funzioni come strlen percorrono l'array fino a trovare il valore nullo.

const char* greeting = "Hello";
// Memory: H, e, l, l, o, \0  (6 bytes)

#include <cstring>
std::cout << std::strlen(greeting);  // 5

std::string

std::string gestisce autonomamente la propria memoria e cresce quando necessario. La costruisca come qualsiasi altro tipo.

#include <string>
std::string name = "Ada";
name += " Lovelace";
std::cout << name;  // Ada Lovelace

Dimensione e lunghezza

std::string::size() e length() sono sinonimi e restituiscono il numero di caratteri (senza includere il terminatore nullo).

std::string s = "hello";
std::cout << s.size();   // 5
std::cout << s.length(); // 5

Accesso tramite indice

Legga o modifichi i caratteri con [] o at(). A differenza di [], at() genera un'eccezione se l'indice è fuori intervallo.

std::string s = "cat";
char first = s[0];        // 'c'
char last  = s.at(2);     // 't'
// s.at(10) throws std::out_of_range

Stringhe vuote

Usi empty() invece di size() == 0. È più chiaro e altrettanto veloce.

Quando usare const char*

Usi una stringa in stile C quando:

  • Interagisce con librerie C o API del sistema operativo
  • Lavora con stringhe letterali che non cambiano mai
  • Sviluppa per sistemi embedded in cui la libreria standard non è disponibile

Convertire tra i due tipi

Ottenga una stringa C da una std::string con .c_str(). Costruisca direttamente una std::string da un const char*.

std::string s = "Hello";
const char* c = s.c_str();

const char* literal = "world";
std::string s2(literal);

Le stringhe letterali sono const char[]

Una stringa letterale come "hi" ha tipo const char[3] (incluso il terminatore nullo). Risiede in memoria di sola lettura.

Stringhe letterali raw

Usi il prefisso R"(...)" per saltare l'elaborazione dei caratteri di escape. È utile per i pattern regex e i percorsi dei file.

std::string regex = R"(\d+\.\d{2})";
std::string path  = R"(C:\Users\Ada)";

Iterare su una std::string

Le stringhe sono contenitori. Le iteri con un ciclo for basato su intervallo, con gli indici o con gli iteratori.

std::string s = "abc";
for (char c : s) std::cout << c << " ";  // a b c

Verifica rapida

Quale metodo di std::string genera un'eccezione quando l'indice è fuori intervallo?

Riepilogo

Preferisca std::string per il testo gestito automaticamente. Usi const char* per i valori letterali e per l'interoperabilità con le API C. Converta tra i due tipi con .c_str() e la costruzione diretta.

Domande Frequenti

La lezione «std::string e array di caratteri in stile C» è gratuita?

Sì — il testo completo di «std::string e array di caratteri in stile C» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.

Cosa imparerò in «std::string e array di caratteri in stile C»?

Confronti std::string moderno e i vecchi array di char terminati da null e scelga quando usare ciascuno. Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C++ Academy?

Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «std::string e array di caratteri in stile C»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C++ Academy?

Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. std::string e array di caratteri in stile C
  2. Operazioni sulle stringhe: concat, substr, find, replace
  3. String stream stringstream per il parsing
  4. Conversioni di stringhe: to_string e stoi
← Torna a C++ Academy