Quelle est la meilleure façon de convertir une chaîne de style C en un C++ std::string
? Dans le passé, je l'ai fait en utilisant stringstream
s. Existe-t-il un meilleur moyen ?
Réponses
Trop de publicités?
SanSS
Points
2834
Vérifiez les différents constructeurs de la classe string : documentation Vous etes peut etre intéressé:
//string(char* s)
std::string str(cstring);
Et:
//string(char* s, size_t n)
std::string str(cstring, len_str);
Shreevardhan
Points
19
C++11
: Surcharger un opérateur de littéral de chaîne
std::string operator ""_s(const char * str, std::size_t len) {
return std::string(str, len);
}
auto s1 = "abc\0\0def"; // C style string
auto s2 = "abc\0\0def"_s; // C++ style std::string
C++14
: utilise l'opérateur de l'espace de noms std::string_literals
using namespace std::string_literals;
auto s3 = "abc\0\0def"s; // is a std::string
Manas
Points
289
trojanfoe
Points
61927