各种常见字符类型转换
注意:默认的编译环境是Unicode环境
1、CString转int
CString strTriNum = _T("123"); int iTriNum = 0; iTriNum = __tstoi(strTriNum);
注意:atoi是ansi版本的;_tstoi 是兼容ansi版本和unicode版本的。
2、int转CString
int iTriNum = 0; CString strTriNum; strTriNum.Format(L"%d",iTriNum);
注意:如果将1转为0001该如下处理:
int iTriNum = 0; CString strTriNum; strTriNum.Format(L"%.4d",iTriNum);
而不是下面这样,下面这样的输出结果为:3个空格加1
int iTriNum = 0; CString strTriNum; strTriNum.Format(L"%4d",iTriNum);
3、CString转double
CString strTriNum = _T("123"); float fTriNum = 0; fTriNum = __tstof_l(strTriNum);
4、double转CString
doulbe fTriNum = 0; CString strTriNum; strTriNum.Format(L"%lf",fTriNum);
5、CString转float
CString strTriNum = _T("123"); float fTriNum = 0; fTriNum = __tstof(strTriNum);
6、float转CString
float fTriNum = 0; CString strTriNum; strTriNum.Format(L"%f",fTriNum);
7、CString转double
CString strTriNum = _T("123"); float fTriNum = 0; fTriNum = __tstof_l(strTriNum);
8、double转CString
doulbe fTriNum = 0; CString strTriNum; strTriNum.Format(L"%lf",fTriNum);
9、CString转WCHAR*
CString strTriNum = _T("123"); WCHAR* szFileName = strXFilePath.AllocSysString();
10、 int--->char*
int i = 21; char ch[20] = {0}; _itoa(i,ch,10);
参数说明:
1 函数原型:char*_itoa(int value,char *string,int radix); 2 参数说明:value-------------------要转换的整形值 3 string------------------转换后的字符串 4 radix-------------------表示基数(2, 8, 10, 16)等进制基数
11、 string(const char*)--->int
方法一:在C标准库里面,使用atoi:
1 string str = "200"; 2 int i = 0; 3 i = atoi(str.c_str());
方法二:在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)
#include <sstream> #include <string> std::string text = "152"; int number = 0; std::stringstream ss; ss << text;//可以是其他数据类型 ss >> number; //string -> int