CString类型转换大全
CString 类型转换大全
首页>CString转int _ttoi() _tcstoul() Format ASSERT()
作者: tags:Form for TC ORM String int CString assert str sse ing for in assert int _ttoi() _tcstoul() Format ASSERT()
-
CString 型转化成 int 型 把 CString 类型的数据转化成整数类型最简单的方法就是使用标准的字符串到整数转换例程。
虽然通常你怀疑使用_atoi()函数是一个好的选择,它也很少会是一个正确的选择。假如你预备使用 Unicode 字符,你应该用_ttoi(),它在 ANSI 编码系统中被编译成_atoi(),而在 Unicode 编码系统中编译成_wtoi()。你也可以考虑使用_tcstoul()或者_tcstol(),它们都能把字符串转化成任意进制的长整数(如二进制、八进制、十进制或十六进制),不同点在于前者转化后的数据是无符号的(unsigned),而后者相反。看下面的例子:
CString hex = _T("FAB");
CString decimal = _T("4011");
ASSERT(_tcstoul(hex, 0, 16) == _ttoi(decimal));
在做DWORD与 CString 比较的时候 ,需要将CString 转换成 DWORD,有几种转换方法,但是明明转换结果是一样的,可就是提示不相等,后来 _tcstoul()转换后才相等 ,记录下??? CString str = lp->GetSubItem(nCol);??? ??? ??? ??? ??? ??? ??? //??? MessageBox(str,m_strItem,MB_OK);??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? DWORD dwData = _tcstoul( str, NULL, 10 ); // 10进制??? ??? ??? ??? ??? ??? if (dwItem ==dwData)??? ??? ??? ??? ??? ??? {??? ??? ??? ??? ??? ??? ??? //AfxMessageBox("找到找到找到找到找到找到找到找到找到找到找到找到找到");??? ??? ??? ??? ??? ??? ??? ???? ??? ??? ??? ??? ??? ??? return pCur;??? ??? ??? ??? ??? ??? }使用_tcstoul()或者_tcstol(),它们都能把字符串转化成任意进制的长整数(如二进制、八进制、十进制或十六进制),不同点在于前者转化后的数据是无符号的(unsigned),而后者相反。看下面的例子:CString hex = _T("FAB");CString decimal = _T("4011");ASSERT(_tcstoul(hex, 0, 16) == _ttoi(decimal));
?
Format函数
VC++中Format函数详解
首先看它的声明:?
function Format(const Format: string; const Args: array of const): string; overload;?
事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,?
但并不多用,所以这里只对第一个介绍:?
function Format(const Format: string; const Args: array of const): string; overload;?
Format参数是一个格式字符串,用于格式化Args里面的值的。Args又是什么呢,?
它是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。?
如以下例子:?
Format("my name is %6s","wind");?
返回后就是?
my name is wind?
现在来看Format参数的具体情况:?
Format里面可以写普通的字符串,比如"my name is"?
但有些格式指令字符具有非凡意义,比如"%6s"?
格式指令具有以下的