int型の数値を文字列に変換するのにitoa関数は利用できない

test120.gif
int型の数値を文字列に変換するには、従来からのC/C++ではitoa関数を利用した。しかしWindowsプログラミングではitoa関数は使わない方がいい。

もちろんitoa関数も使えるが文字列バッファーサイズを指定できるためセキュリティが若干高い_itoa_s系の関数を利用した方がいい。さらに言うと実際のプログラミングでは速度的には劣るがバッファーのことを考える必要がなくコーディングが楽なCString型の文字列を利用する変換がいいだろう。



bool	Test()
{
	////////////////////////////////
	//	int型数値を文字列に変換
	//
	{
		//char型文字列に変換
		int		nValue = 123;
		char	pszText[256];

		//itoaや_itoaは利用しない方がいい!代わりに_itoa_sを使う
		::_itoa_s(nValue,pszText,256 * sizeof(char),10);

		::MessageBoxA(NULL,pszText,"",MB_OK);
	}
	{
		//wchar_t型文字列に変換
		int		nValue = 123;
		wchar_t	pszText[256];

		//_itowは利用しない方がいい!代わりに_itow_sを使う
		::_itow_s(nValue,pszText,256 * sizeof(wchar_t),10);

		::MessageBoxW(NULL,pszText,L"",MB_OK);
	}
	{
		//TCHAR型文字列に変換
		int		nValue = 123;
		TCHAR	pszText[256];

		//_itotは利用しない方がいい!代わりに_itot_sを使う
		::_itot_s(nValue,pszText,256 * sizeof(TCHAR),10);

		::MessageBox(NULL,pszText,_T(""),MB_OK);
	}
	{
		//CString型文字列に変換
		int		nValue = 123;
		CString	strText;

		strText.Format(_T("%d"),nValue);

		::MessageBox(NULL,strText,_T(""),MB_OK);
	}

	return	true;
}


プロジェクトファイルをダウンロード


カテゴリー「文字列操作」 のエントリー