Outils pour utilisateurs

Outils du site


lang:cpp:string

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
lang:cpp:string [2023/01/30 09:42] – Ajout de consteval avec std::string_view rootlang:cpp:string [2025/08/27 13:47] (Version actuelle) – [stringstream] : ajout de "Concaténation de string" root
Ligne 15: Ligne 15:
  
 [[https://stackoverflow.com/questions/37395399/multiplatform-way-to-write-a-stdwstring-into-a-file-in-c|Multiplatform way to write a std::wstring into a file in C++]] {{ :lang:cpp:string:encoding_-_multiplatform_way_to_write_a_std_wstring_into_a_file_in_c_-_stack_overflow_2019-12-27_20_18_07_.html |Archive du 23/05/2016 le 27/12/2019}} [[https://stackoverflow.com/questions/37395399/multiplatform-way-to-write-a-stdwstring-into-a-file-in-c|Multiplatform way to write a std::wstring into a file in C++]] {{ :lang:cpp:string:encoding_-_multiplatform_way_to_write_a_std_wstring_into_a_file_in_c_-_stack_overflow_2019-12-27_20_18_07_.html |Archive du 23/05/2016 le 27/12/2019}}
 +
 +  * Conversion entre string et wstring
 +
 +Sous windows :
 +
 +<code cpp>
 +std::wstring s2ws(const std::string& s)
 +{
 +  int slength = (int)s.length() + 1;
 +  int len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0); 
 +  std::wstring r(len, L'\0');
 +  MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, &r[0], len);
 +  return r;
 +}
 +
 +std::string ws2s(const std::wstring& s)
 +{
 +  int slength = (int)s.length() + 1;
 +  int len = WideCharToMultiByte(CP_ACP, 0, s.c_str(), slength, 0, 0, 0, 0); 
 +  std::string r(len, '\0');
 +  WideCharToMultiByte(CP_ACP, 0, s.c_str(), slength, &r[0], len, 0, 0); 
 +  return r;
 +}
 +</code>
 +
 +[[https://codereview.stackexchange.com/questions/419/converting-between-stdwstring-and-stdstring|Converting between std::wstring and std::string]] {{ :lang:cpp:string:c_-_converting_between_std_wstring_and_std_string_-_code_review_stack_exchange_04_05_2023_14_44_33_.html |Archive du 29/01/2011 le 04/05/2023}}
  
 ====stringstream=== ====stringstream===
 +
 +===Concaténation de string===
 +
 +<code cpp>
 +std::stringstream ss;
 +ss << "coucou" << "1\n";
 +ss.str();
 +</code>
 +
 +Ou en utilisant ''append''. Attention, ''append'' modifie le string d'origine. Dans l'exemple ci-dessous, on passe par une copie de la variable ''coucou''.
 +
 +<code cpp>
 +std::string coucou = "coucou";
 +
 +std::string(coucou).append("1\n");
 +</code>
 +
 +===char===
 +
 Le résultat ne va pas être le même si on donne à ''std::stringstream'' un ''int'' ou un ''char''. Le résultat ne va pas être le même si on donne à ''std::stringstream'' un ''int'' ou un ''char''.
  
-  ss << static_cast<char>(1);+<code cpp> 
 +ss << static_cast<char>(1); 
 +</code>
  
 va donner ''\x1''. va donner ''\x1''.
  
-  ss << static_cast<int>(1);+<code cpp> 
 +ss << static_cast<int>(1); 
 +</code>
  
 va donner ''1''. va donner ''1''.
Ligne 60: Ligne 109:
 </code> </code>
  
-[[https://godbolt.org/z/r91oGGb7W|Exemple godbolt]]+[[https://godbolt.org/z/b4sY41Gbx|Exemple godbolt]]
 ====Split==== ====Split====
 ===string=== ===string===
lang/cpp/string.1675068125.txt.gz · Dernière modification : de root