lang:cpp:string
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
lang:cpp:string [2019/12/27 20:22] – mhtml -> html root | lang:cpp:string [2023/05/29 11:58] (Version actuelle) – [consteval avec std::string_view] : fix lien root | ||
---|---|---|---|
Ligne 15: | Ligne 15: | ||
[[https:// | [[https:// | ||
+ | |||
+ | * Conversion entre string et wstring | ||
+ | |||
+ | Sous windows : | ||
+ | |||
+ | <code cpp> | ||
+ | std:: | ||
+ | { | ||
+ | int slength = (int)s.length() + 1; | ||
+ | int len = MultiByteToWideChar(CP_ACP, | ||
+ | std:: | ||
+ | MultiByteToWideChar(CP_ACP, | ||
+ | return r; | ||
+ | } | ||
+ | |||
+ | std::string ws2s(const std:: | ||
+ | { | ||
+ | int slength = (int)s.length() + 1; | ||
+ | int len = WideCharToMultiByte(CP_ACP, | ||
+ | std::string r(len, ' | ||
+ | WideCharToMultiByte(CP_ACP, | ||
+ | return r; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
====stringstream=== | ====stringstream=== | ||
Ligne 27: | Ligne 53: | ||
va donner '' | va donner '' | ||
+ | ====consteval avec std:: | ||
+ | |||
+ | Ce n'est pas possible. Il faut travailler avec les '' | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | template <class T, std::size_t N> | ||
+ | struct decayable_array : std:: | ||
+ | constexpr operator const T*() const { return this-> | ||
+ | }; | ||
+ | |||
+ | template < | ||
+ | consteval decayable_array< | ||
+ | decayable_array< | ||
+ | |||
+ | for (std:: | ||
+ | data[N - i - 2] = arr[i]; | ||
+ | } | ||
+ | |||
+ | return data; | ||
+ | } | ||
+ | |||
+ | int main() { return strlen(reverse(" | ||
+ | </ | ||
+ | |||
+ | <code asm> | ||
+ | main: | ||
+ | mov eax, 3 | ||
+ | ret | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
====Split==== | ====Split==== | ||
===string=== | ===string=== |
lang/cpp/string.1577474546.txt.gz · Dernière modification : 2019/12/27 20:22 de root