Concaténer char* et string
Fermé
Francky_
Messages postés
59
Date d'inscription
mardi 23 juillet 2013
Statut
Membre
Dernière intervention
7 juillet 2014
-
19 juin 2014 à 21:31
Francky_ Messages postés 59 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 7 juillet 2014 - 19 juin 2014 à 21:58
Francky_ Messages postés 59 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 7 juillet 2014 - 19 juin 2014 à 21:58
A voir également:
- Concaténer char* et string
- Concatener deux cellules excel - Guide
- Coco char - Accueil - Réseaux sociaux
- Concaténer pdf - Guide
- Vli product string - Forum Matériel & Système
- Inverse de concatener ✓ - Forum Excel
2 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 19/06/2014 à 21:44
Modifié par gravgun le 19/06/2014 à 21:44
'lut, gérer des string style C, c'est pas aussi simple...
Passe d'abord par un gros string (ici
from human import idiocy
del idiocy
Passe d'abord par un gros string (ici
message), puis récupères le string C après:
void truc(string message) { message = "blableable"+message; // message est une copie locale car c'est pas une référence (sinon ça serait "string &message") const char* sbuf = message.c_str(); // n'est pas modifiable par contre }Si tu veux modifier sbuf, il faut copier le string C donné par
messagepour qu'il ne soit pas
const:
char* sbuf = new char[message.length() + 1]; strcpy(sbuf, message.c_str()); [...] delete [] cstr;Si tu codes en C++11 ou 14, pense à utiliser unique_ptr ou shared_ptr pour gérer automatiquement la désallocation du tableau de
char.
from human import idiocy
del idiocy
Francky_
Messages postés
59
Date d'inscription
mardi 23 juillet 2013
Statut
Membre
Dernière intervention
7 juillet 2014
5
19 juin 2014 à 21:48
19 juin 2014 à 21:48
salut,
Et bien que dire à part un grand merci.
ça marche IMPECCABLE. ;)
Juste une question : ça fait quoi concrètement .c_str() ?
Encore un grand merci à toi !
Et bien que dire à part un grand merci.
ça marche IMPECCABLE. ;)
Juste une question : ça fait quoi concrètement .c_str() ?
Encore un grand merci à toi !
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
19 juin 2014 à 21:55
19 juin 2014 à 21:55
.c_str()renvoie un pointeur
const char*vers une représentation du string sous la forme d'un string C. Sauf que cette représentation ne doit pas être modifiée (d'où le
const), car c'est pas nous qui gérons ce morceau de mémoire, en effet, il devient invalide quand on modifie le string ou quand il est détruit (fin de la fonction par ex.), et ça peut (autant que ça peut ne pas) être la vraie zone mémoire qui contient le vrai contenu du string.
Francky_
Messages postés
59
Date d'inscription
mardi 23 juillet 2013
Statut
Membre
Dernière intervention
7 juillet 2014
5
19 juin 2014 à 21:58
19 juin 2014 à 21:58
un peu compliqué mais je vois à peu près le truc ;)
merci pour tes explications.
Bonne soirée.
merci pour tes explications.
Bonne soirée.