std::string ou tableaux de caractères à la manière C
Comparez std::string, moderne, aux anciens tableaux de caractères terminés par un caractère nul et choisissez quand utiliser chacun.
std::string ou tableaux de caractères à la manière C est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.
Deux façons de stocker du texte
C++ conserve les chaînes de caractères de style C — des tableaux de char terminés par un caractère nul — et ajoute std::string de la bibliothèque standard. Utilisez presque toujours std::string.
Chaînes de caractères de style C
Une chaîne de caractères de style C est une séquence de char qui se termine par un octet nul '\0'. Des fonctions comme strlen parcourent le tableau jusqu’à trouver le caractère nul.
const char* greeting = "Hello";
// Memory: H, e, l, l, o, \0 (6 bytes)
#include <cstring>
std::cout << std::strlen(greeting); // 5std::string
std::string gère sa propre mémoire et s’agrandit selon les besoins. Construisez-le comme n’importe quel autre type.
#include <string>
std::string name = "Ada";
name += " Lovelace";
std::cout << name; // Ada LovelaceTaille et longueur
std::string::size() et length() sont synonymes et renvoient le nombre de caractères (sans inclure le caractère nul final).
std::string s = "hello";
std::cout << s.size(); // 5
std::cout << s.length(); // 5Accès par indice
Lisez ou écrivez les caractères avec [] ou at(). Contrairement à [], at() lève une exception si l’indice est hors limites.
std::string s = "cat";
char first = s[0]; // 'c'
char last = s.at(2); // 't'
// s.at(10) throws std::out_of_rangeChaînes vides
Utilisez empty() plutôt que size() == 0. C’est plus clair et tout aussi rapide.
Quand utiliser const char*
Utilisez une chaîne de caractères de style C lorsque :
- Vous interfacer avec des bibliothèques C ou des interfaces du système d’exploitation
- Vous travaillez avec des littéraux de chaînes qui ne changent jamais
- Vous développez pour des systèmes embarqués où la bibliothèque standard n’est pas disponible
Convertir entre les deux
Obtenez une chaîne C à partir d’une std::string avec .c_str(). Construisez directement une std::string à partir d’un const char*.
std::string s = "Hello";
const char* c = s.c_str();
const char* literal = "world";
std::string s2(literal);Les littéraux de chaînes sont de type const char[]
Un littéral de chaîne comme "hi" est de type const char[3] (caractère nul final inclus). Il se trouve dans une mémoire en lecture seule.
Littéraux de chaînes brutes
Ajoutez le préfixe R"(...)" pour ignorer le traitement des séquences d’échappement. C’est utile pour les motifs d’expressions régulières et les chemins de fichiers.
std::string regex = R"(\d+\.\d{2})";
std::string path = R"(C:\Users\Ada)";Parcourir une std::string
Les chaînes sont des conteneurs. Parcourez-les avec une boucle fondée sur une plage, des indices ou des itérateurs.
std::string s = "abc";
for (char c : s) std::cout << c << " "; // a b cVérification rapide
Quelle méthode de std::string lève une exception lorsque l’indice est hors limites ?
Récapitulatif
Préférez std::string pour gérer du texte. Utilisez const char* pour les littéraux et l’interopérabilité avec les interfaces C. Convertissez-les avec .c_str() et par construction directe.
Questions Fréquemment Posées
La leçon « std::string ou tableaux de caractères à la manière C » est-elle gratuite ?
Oui — le texte complet de « std::string ou tableaux de caractères à la manière C » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « std::string ou tableaux de caractères à la manière C » ?
Comparez std::string, moderne, aux anciens tableaux de caractères terminés par un caractère nul et choisissez quand utiliser chacun. Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C++ Academy ?
Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « std::string ou tableaux de caractères à la manière C » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?
Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- std::string ou tableaux de caractères à la manière C
- Opérations sur les chaînes : concaténation, sous-chaînes, recherche et remplacement
- Flux de chaînes stringstream pour l’analyse
- Conversions de chaînes : to_string et stoi