char *とwchar *の交換



Interchange Between Char



  • mbstowcs_s

機能:マルチバイトでエンコードされた文字列をワイド文字でエンコードされた文字列(char *からwchar *)に変換します。
ヘッダーファイル:#include。
関数プロトタイプ:
errno_t __cdecl mbstowcs_s(size_t * _PtNumOfCharConverted、wchar_t * _DstBuf、size_t _SizeInWords、const char * _SrcBuf、size_t _MaxCount)
パラメータの説明:
_PtNumOfCharConverted:変換された文字列の長さとターミネータ(ユニットwchar_t)を指します
_DstBuf:変換された文字列の最初のアドレスを指します
_SizeInWords:宛先アドレスの最大ワードスペースサイズ(ユニットwchar_t)
_SrcBuf:ソースマルチバイト文字列の最初のアドレス
_MaxCount:変換されたワイド文字列をトリミングするためにワイド文字列バッファに格納できる最大文字数。
戻り値:0は正常に返され、失敗した場合は失敗コードが返されます。

  • wcstombs_s

機能:ワイド文字でエンコードされた文字列をマルチバイトでエンコードされた文字列に変換します(wchar *からchar *)。
プロトタイプ:errno_t wcstombs_s(size_t * pReturnValue、char * mbstr、size_t sizeInBytes、const wchar_t * wcstr、size_t count)
ヘッダーファイル:。
パラメータの説明:
pReturnValue:変換された文字数。 -----変換されたマルチバイト文字列の文字数
mbstr:変換されたマルチバイト文字ストリングのバッファーのアドレス。 ----- char型の文字または文字列のアドレス(変換された文字列を受け取るバッファ)
sizeInBytes:mbstrバッファーのサイズ(バイト単位)。 -----変換されたchar型バッファのサイズ(バイト単位)を受け取るために使用されます
wcstr:変換されるワイド文字列を指します。 -----タイプwchar_tの文字列のアドレス(変換される文字列のバッファのアドレス)
count:mbstrバッファに格納される最大バイト数----- mbstrに格納できる最大バイト数。
戻り値:0は正常に返され、失敗した場合は失敗コードが返されます。



コード:

#include using namespace std int main() { char* pStr = (char*)'12345shangshandalaohu' size_t len = strlen(pStr) + 1 size_t converted = 0 wchar_t* pws = new wchar_t[len] mbstowcs_s(&converted, pws, len, pStr, _TRUNCATE) Wcout << 'Conversion length is:' << converted << ', String: ' << pws << endl char* pc = new char[len] wcstombs_s(&converted, pc, len, pws, _TRUNCATE) Cout << 'Conversion length is: ' << converted << ', String: ' << pc << endl }

転載:https://www.jianshu.com/p/cc97a2b34c55