はじめに
他の方法が存在するかもですが、許してください。
あとテーブルが大きすぎて半分崩壊してます()
文字列型を変換するときのチートシート
横が変換元、縦が変換先です。
char * |
const char * |
std::string |
wchar_t * |
const wchar_t * |
std::wstring |
|
---|---|---|---|---|---|---|
char * |
- | std::memcpyで別に宣言するかstd::static_cast<> | const char *を経由 | std::wcstombs() | std::wcstombs() | wchar_t *を経由 |
const char * |
constを付与して宣言 | - | .c_str()か.data() | std::wcstombs() | std::wstring_convert<>かstd::wcstombs() | std::stringを経由 |
std::string |
std::string() | std::string() | - | char *かstd::stringを経由 | const char *かstd::wstringを経由 | std::wstring_convert<> |
wchar_t * |
std::mbstowcs() | std::mbstowcs() | std::wstringを経由 | - | std::wcscpy()で別に宣言するかstd::static_cast<> | const wchar_t *を経由 |
const wchar_t * |
std::mbstowcs() | std::wstring_convert<>かstd::mbstowcs() | const char *かstd::wstringを経由 | constを付与して宣言 | - | .c_str()か.data() |
std::wstring |
std::string()を経由 | std::stringを経由 | std::wstring_convert<> | std::wstring() | std::wstring() | - |
std::wstring_convert<>の具体的な中身はstd::wstring_convert<std::codecvt_utf8<wchar_t>>です。
その他にも、std::static_cast<>を使用することができるものもあります。
数値型を変換するときのチートシート
横が変換元、縦が変換先です。
*=明示的変換。
int |
char |
float |
double |
std::string |
const char * |
|
---|---|---|---|---|---|---|
int |
- | * | * | * | std::stoi() | std::atoi() |
char |
* | - | * | * | intを経由 | intを経由 |
float |
* | * | - | * | std::stof() | std::atof() |
double |
* | * | * | - | std::stod() | std::atod() |
std::string |
std::to_string() | 数値のcharはintを経由,文字のcharはstd::string() | std::to_string() | std::to_string | - | 文字列型の変換チートシートを参照 |
const char * |
std::stringを経由 | std::stringを経由 | std::stringを経由 | std::stringを経由 | 文字列型の変換チートシートを参照 | - |