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); // 5std::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 LovelaceDimensione 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(); // 5Accesso 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_rangeStringhe 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 cVerifica 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
- std::string e array di caratteri in stile C
- Operazioni sulle stringhe: concat, substr, find, replace
- String stream stringstream per il parsing
- Conversioni di stringhe: to_string e stoi