将CString字符串输入转化成整数的实现方法
如下所示:
BOOLIsHexFormat(LPCTSTRpStr)
{
if(pStr[0]==L'0'&&((pStr[1]==L'x')||(pStr[1]==L'X'))){
returnTRUE;
}
returnFALSE;
}
BOOLIsInputValid(LPCTSTRpStr)
{
inti;
BOOLres;
BOOLIsHex;
i=0;
res=TRUE;
IsHex=IsHexFormat(pStr);
while(pStr[i]!=L'\0'){
if(pStr[i]>=L'0'&&pStr[i]<=L'9'){
i++;
continue;
}
elseif(IsHex&&(i==1)){
i++;
continue;
}
elseif(IsHex&&
((pStr[i]>=L'a'&&pStr[i]<=L'f')||
(pStr[i]>=L'A'&&pStr[i]<=L'F'))){
i++;
continue;
}
else{
res=FALSE;
break;
}
}
returnres;
}
UINT32CStrHex2Uint32(LPCTSTRpStr)
{
inti=0;
UINT32res=0;
while(pStr[i]!=L'\0'){
if(pStr[i]>=L'0'&&pStr[i]<=L'9'){
res=res*16+pStr[i]-L'0';
}
elseif(pStr[i]>=L'a'&&pStr[i]<=L'f'){
res=res*16+pStr[i]-L'a'+10;
}
elseif(pStr[i]>=L'A'&&pStr[i]<=L'F'){
res=res*16+pStr[i]-L'A'+10;
}
else{
break;
}
i++;
}
returnres;
}
/*将CString转化成UINT32,0x开头的识别成十六进制,其它为十进制*/
BOOLCStr2Uint32(CStringstr,UINT32*pData)
{
LPCTSTRpStr;
pStr=(LPCTSTR)str;
if(!IsInputValid(pStr)){
*pData=0;
returnFALSE;
}
if(IsHexFormat(pStr)){
UINT32Data;
pStr=&pStr[2];
*pData=CStrHex2Uint32(pStr);
}
else{
*pData=_wtoi((wchar_t*)pStr);
}
returnTRUE;
}
以上就是小编为大家带来的将CString字符串输入转化成整数的实现方法的全部内容了,希望对大家有所帮助,多多支持毛票票~