Il existe en C++ une classe plus pratique que le type de base
char* pour les manipulation de base des chaînes de caractères, il s'agit de la
classe string (inclure pour cela #include <string>). Exemple d'utilisation:
string a = "Bonjour"; string nom = "Marie"; string b = a + " " + nom; // concaténation de chaînes char* c = b.c_str(); // transformer un string en char* a = string(c); // transformer un char* en string
Pour rechercher une sous-chaîne dans un string a, on peut utiliser la
fonction membre find comme dans l'exemple
a.find("jour").
Pour plus de détails sur les string, vous
pouvez par exemple consulter
http://casteyde.christian.free.fr/cpp/cours/online/c5501.html#STRINGSECT
Pour créer et extraire des chaînes de caractères cependant,
les bonnes vieilles fonctions sprintf et sscanf du C
sur les char* sont toujours aussi pratiques. Ainsi:
char* c = new char[200]; sprintf(c, "Bonjour %s pour la %dième fois !", "Marie", 2);écrira, dans
c, la chaîne
Bonjour Marie pour la 2ième fois !. En effet,
les % suivis d'une lettre sont remplacés dans l'ordre par les
arguments suivants, la lettre spécifiant le type de l'agument (on peut
également éventuellement spécifier le format):
%s indique une chaîne de caractères tandis que %d indique
un entier. Plus de détails dans les pages de man (taper
man sprintf dans un terminal pour avoir l'aide sur cette fonction) !