[C++] conversion char** en std:string*
Résolu
EverDraft
Messages postés
24
Statut
Membre
-
EverDraft Messages postés 24 Statut Membre -
EverDraft Messages postés 24 Statut Membre -
Bonjour,
je cherche a transformer un char** en std::string*.
Par exemple:
int main(int argc,
char** argv)
{
std::string* argv_;
argv_ << argv;
for (int i = 0; i < argc; i++)
std::cout << "les arguments sont: `" << argv_[i] << "\'" << std::endl;
return 0;
}
Cet exmple est faux, c'est juste pour donner l'idee de se que je recherche.
Merci pour votre aide.
je cherche a transformer un char** en std::string*.
Par exemple:
int main(int argc,
char** argv)
{
std::string* argv_;
argv_ << argv;
for (int i = 0; i < argc; i++)
std::cout << "les arguments sont: `" << argv_[i] << "\'" << std::endl;
return 0;
}
Cet exmple est faux, c'est juste pour donner l'idee de se que je recherche.
Merci pour votre aide.
A voir également:
- [C++] conversion char** en std:string*
- Logiciel gratuit conversion calendrier républicain - Télécharger - Études & Formations
- Conversion bytes en mo ✓ - Forum Programmation
- Bits, bytes, octet, Mb - Forum Réseau
- Conversion mb en go ✓ - Forum Mail
- 2k€ conversion - Forum Logiciels
3 réponses
bonjour
regarde dans la classe string si je me souvien bien il y'a une methode pour convertir un char en string (et une methode pour fiare l'inverse)
regarde dans la classe string si je me souvien bien il y'a une methode pour convertir un char en string (et une methode pour fiare l'inverse)
Salut. quitte à utiliser la STL autant le faire jusqu'au bout.
std::vector<std::string> argv_;
for (int i = 0; i < argc; i++) argv_.push_back(argv[i]);
Je doute que tu puisse convertir un char** à string* directement et aussi simplement qu'en fesant argv_<<argv; et en particulier car string* est un pointeur sur string et que par conséquan il faut lui allouer un certain espace mémoire, ce qui ne se fait pas automatiquement.
pour faire l'inverse, il suffit d'utilise
const char* std::string::c_str();
std::vector<std::string> argv_;
for (int i = 0; i < argc; i++) argv_.push_back(argv[i]);
Je doute que tu puisse convertir un char** à string* directement et aussi simplement qu'en fesant argv_<<argv; et en particulier car string* est un pointeur sur string et que par conséquan il faut lui allouer un certain espace mémoire, ce qui ne se fait pas automatiquement.
pour faire l'inverse, il suffit d'utilise
const char* std::string::c_str();
Merci beaucoup, j'ai trouve la solution:
#include <list>
#include <iostream>
#include <string>
int main(int argc,
char** argv)
{
std::list<std::string> argv_;
std::list<std::string>::iterator i;
for (int i = 0; i < argc; i++)
std::cout << argv[i] << std::endl;
for(int i = 0; i < argc; i++)
argv_.push_back(argv[i]);
for (i = argv_.begin(); i != argv_.end(); i++)
std::cout << *i << std::endl;
}
encore merci.
J'ai un autre souci mais je vais poster dans un nouveau topic, encore merci.
#include <list>
#include <iostream>
#include <string>
int main(int argc,
char** argv)
{
std::list<std::string> argv_;
std::list<std::string>::iterator i;
for (int i = 0; i < argc; i++)
std::cout << argv[i] << std::endl;
for(int i = 0; i < argc; i++)
argv_.push_back(argv[i]);
for (i = argv_.begin(); i != argv_.end(); i++)
std::cout << *i << std::endl;
}
encore merci.
J'ai un autre souci mais je vais poster dans un nouveau topic, encore merci.