turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 2012
-
3 mai 2006 à 15:44
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 2012
-
4 mai 2006 à 09:54
Bonjour,
je n'arrive pas à convertir une string en char*, je sais que ca parait tout bete, mais je bloque, si quelqu'un pouvait m'aider, ce serai super.
string::const_iterator it=tmp.begin();
int nbtmp=0;
while(it!=tmp.end())
{
buf[nbtmp++]=*it++;
}
/* ou
strncpy(&buf[0],tmp.c_str(),tmp.size()); marche pas non plus
*/
cout << "Taille de la string : " << tmp.size() << " celle de la chaine : " << strlen(buf)-1 << endl;
}
Voila, dans ma string, j'ai toutes les infos qui m'interesse, mais la ou ca plante c'est pour le mettre dans un char*.
Et une trace à l'execution :
#> prog.exe
#> ...
#> Taille de la string : 113788 celle de la chaine : 3
#> ...
La je bloque vraiment, si quelqu'un sait d'ou ca peut venir.
Merci
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 3 mai 2006 à 15:55
Le problème c'est qu'il y a des caractères nuls (le quatrième au moins). Du coup, strlen de retourne 3. Tu n'a qu'a essayer tmp.length(), tu aura aussi 3 normalement
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 3 mai 2006 à 16:05
Merci, mais non, ca me rend bien 113788, de toute facon tmp.length() et tmp.size() c'est la meme chose.
Par contre qu'il y ai un caractere nul, c'est fort probable.
Mais, comment je fait pour connaitre la taille de ma chaine buf alors ???
TuRn3r
Vous n’avez pas trouvé la réponse que vous recherchez ?