将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字符串输入转化成整数的实现方法的全部内容了,希望对大家有所帮助,多多支持毛票票~