yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 2 nov. 2006 à 15:04
Peux tu préciser ta question SVP ?
Parles tu des std::string , du vector<char> , de CString MFC, ou d'une classe que tu as fait toi-même.
Le principe d'une classe string de base c'est un tableau de char + longueur de chaine.
class string
{
char* buf;
unsigned len;
// + constructeur de copie et destructeur car alloc dyn.
// + tous les operator ([], +, +=, == , <, >, ect...)
// + operator de coercition(static_cast<>)
};
il suffit d'ajouter un constructeur qui prend un tab de char.
char tabChar[] = "blabla\0";
string s(tabChar);
// puis modif a volontée
s.ModifCeQueTuVeux(paramCeQueTuVeux);
keos31
Messages postés7Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention 2 novembre 2006 2 nov. 2006 à 21:29
c'était un string de la class System::String, mais je crois en fait que
c'est pas possible de le modifier on est obligé d'en recréé un pour
l'affecter au string que l'on veut modifier.
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 3 nov. 2006 à 00:22
Dans ce cas précis oui, puisque tu l'écrase, c'est le gc qui détruira la référence mais tu ne peux plus l'utiliser dans son état premier, sauf si tu la clone avant (::Clone). Ou mieux, tu copie la référence avec ::CopyTo