C'est une question de sensibilité. Moi par exemple, je préfère passer par un string temporaire. Mais c'est tout simplement parce que je maîtrise bien la classe string et que je ne connais pas les fonctions de traitement de chaines en C.
Je suis d'accord avec toi et je fais comme ça habituellement quand je dois récupérer ou envoyer un char* dans une lib C.
Mais dans ce cas, il faut récupérer des char* et renvoyer des char*. C'est un peu lourd de passer par un string.
Avec du code C :
char* result = stdcat(data1, data2);
Avec du code C++ :
1 2 3
| string str = string(data1) + string(data2);
char* result = new char[str.size()];
copy(str.begin(), str.end(), result); |
C'est un peu lourd quand même...
dans strcat(char* dest, char* src ) est ce que dest doit se temriner par un \0 ? Si dest ne se terine pas par \0 est ce que strcat se comporte comme si il y avait un \0 à la fin de "dest", c'est à dire il n'écrase pas le dernier caractère de "dest" ?
Une chaine char* doit toujours se terminer par un '\0'. Je te renvois à la FAQ C pour les explications
Partager