salut, ma question parait simpliste mais c'est un véritable calvaire ou alors je passe à coté d'un truc.
je dois passer mon QString en char* pour l'utiliser en argument d'une fonction (écrite en C).
Un petit tour dans la doc Qt et on peut voir qu'il n'y a pas de fonction qui fait ça mais les méthodes data() et constdata() renvoient le contenu du QString en QChar*. Les méthodes toAcsii et toLatin1 de la classe QChar permettent de renvoyer la valeur du caractère en char.
A partir de ce constat j'ai essayé d'écrire la fonction suivante :
et là j'ai bien ma chaine correspondant à mon QString mais j'ai en plus une 15aine de caractères rajoutés en fin de chaine sans raison particulière (alors que j'alloue la bonne taille) c'est vraiment bizarre?! voyez vous une faute dans l'algo?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 const QChar *qchar = stringqt.constData(); char *monchar = new char[stringqt.size()]; for (int i=0; i<stringqt.size(); i++) *(monchar+i) = (qchar+i)->toAscii(); //ou ->toLatin1 return monchar;
un moyen plus simple?
merci
Partager