文字型:
- char(通常1バイトの文字を保持)
- wchar_t(ワイド文字を保持)
- char16_t(UTF-16文字)
- char32_t(UTF-32文字)
#include <string>
#include <vector>
#include <iostream>
バイトデータ、数値への変換方法を列挙します。
目次
char*, char[] → std::string
// char* to std::string char* charPtr = "Hello";
std::string strFromCharPtr(charPtr);
// char[] to std::string char charArray[] = "World";
std::string strFromCharArray(charArray);
char*, char[] → CString (MFCが必要)
// char* to CString char* charPtr = "Hello";
CString cstrFromCharPtr(charPtr);
// char[] to CString char charArray[] = "World";
CString cstrFromCharArray(charArray);
char, unsigned char → std::string
// char to std::string char ch = 'A';
std::string strFromChar(1, ch);
// unsigned char to std::string unsigned char uch = 'B';
std::string strFromUChar(1, uch);
文字列(std::string) → 数値 (std::string)
// std::string to int std::string strNumber = "123";
int numberFromString = std::stoi(strNumber);
// CString to int (MFCが必要)
CString cstrNumber = _T("456"); int numberFromCString = _ttoi(cstrNumber);
文字列(std::string)→バイトデータ (bytes)→文字列(std::string)
① 文字列(std::string)→ バイトデータ (bytes)
// ( 1 )
// std::string を std::vector<unsigned char> に変換
std::vector<unsigned char> bytes(str.begin(), str.end());
② バイトデータ (bytes)→ 文字列(std::string)
// ( 2 )
// std::vector<unsigned char> から std::string に再変換
std::string strRecovered(bytes.begin(), bytes.end());