将CString字符串输入转化成整数的实现方法

如下所示:

BOOL IsHexFormat(LPCTSTR pStr)
{
  if (pStr[0] == L'0' && ((pStr[1] == L'x') || (pStr[1] == L'X'))){
    return TRUE;
  }
  return FALSE;
} 

BOOL IsInputValid(LPCTSTR pStr)
{
  int i;
  BOOL res;
  BOOL IsHex;
  i = 0;
  res = TRUE;
  IsHex = IsHexFormat(pStr);
  while (pStr[i] != L'\0'){
    if (pStr[i] >= L'0' && pStr[i] <= L'9'){
      i++;
      continue;
    }
    else if (IsHex && (i == 1)){
      i++;
      continue;
    }
    else if (IsHex &&
        ((pStr[i] >= L'a' && pStr[i] <= L'f') ||
         (pStr[i] >= L'A' && pStr[i] <= L'F') )) {
      i++;
      continue;
    }
    else{
      res = FALSE;
      break;
    }
  }
  return res;
} 

UINT32 CStrHex2Uint32(LPCTSTR pStr)
{
  int i = 0;
  UINT32 res = 0; 

  while (pStr[i] != L'\0'){
    if (pStr[i] >= L'0' && pStr[i] <= L'9'){
      res = res * 16 + pStr[i] - L'0';
    }
    else if (pStr[i] >= L'a' && pStr[i] <= L'f'){
      res = res * 16 + pStr[i] - L'a' + 10;
    }
    else if (pStr[i] >= L'A' && pStr[i] <= L'F'){
      res = res * 16 + pStr[i] - L'A' + 10;
    }
    else{
      break;
    }
    i++;
  }
  return res;
}
/* 将CString转化成UINT32, 0x开头的识别成十六进制,其它为十进制*/
BOOL CStr2Uint32(CString str, UINT32 *pData)
{
  LPCTSTR pStr;
  pStr = (LPCTSTR)str;
  if (!IsInputValid(pStr)){
    *pData = 0;
    return FALSE;
  }
  if (IsHexFormat(pStr)){
    UINT32 Data;
    pStr = &pStr[2];
    *pData = CStrHex2Uint32(pStr);
  }
  else{
    *pData = _wtoi((wchar_t *)pStr);
  }
  return TRUE;
} 

以上就是小编为大家带来的将CString字符串输入转化成整数的实现方法的全部内容了,希望对大家有所帮助,多多支持我们~

(0)

相关推荐

  • C语言中字符串和数字的相互转换实现代码

    1.数字转换为字符串sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [, argument] ... ); 除了前两个参数类型固定外,后面可以接任意多个参数.printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以"%"开头的格式说明符(format

  • C语言实现将字符串转换为数字的方法

    本文实例讲述了C语言实现将字符串转换为数字的方法.分享给大家供大家参考.具体实现方法如下: C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: 复制代码 代码如下: # include <stdio. h> # include <stdlib. h> void main (void) ; void main (void) {     int num;     char * str = &qu

  • CString,字符串,整数等相互转换方法(推荐)

    字符串转int int atoi(const char *string); _int64 _atoi64(const char *string); int _wtoi(const wchar_t *string); _int64 _ wtoi64(const char *string); 字符串转long long atol(const char * string); long _wtol(const wchar_t *string); 字符串转double double atof(const

  • string,CString,char*之间的转化

    string,CString,char*之间的转化 int 转 CString:CString.Format("%d",int);...............................string 转 CString CString.format("%s", string.c_str()); 用c_str()确实比data()要好. .......................................char* 转 CString CString.

  • 将CString字符串输入转化成整数的实现方法

    如下所示: BOOL IsHexFormat(LPCTSTR pStr) { if (pStr[0] == L'0' && ((pStr[1] == L'x') || (pStr[1] == L'X'))){ return TRUE; } return FALSE; } BOOL IsInputValid(LPCTSTR pStr) { int i; BOOL res; BOOL IsHex; i = 0; res = TRUE; IsHex = IsHexFormat(pStr); wh

  • C++实现LeetCode(13.罗马数字转化成整数)

    [LeetCode] 13. Roman to Integer 罗马数字转化成整数 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol       Value I                  1 V                 5 X                10 L                 50 C                100 D 

  • python将中文数字转化成阿拉伯数字的简单方法

    正则表达式提取文本中的数字 这里演示一下文本中提取中文年份 import re m0 = "在一九四九年新中国成立比一九九零年低百分之五点二人一九九六年击败俄军,取得实质独立" pattrern1 = '[零一二三四五六七八九]{4,}' pattrern2 = '[〇一二三四五六七八九零壹贰叁肆伍陆柒捌玖貮两]{4,}' time1 = re.findall(pattrern1,m0)#转化数字 提取年份如:'1949', '1990', '1996' 这里给出许多正则表达式的样例:

  • PHP把小数转成整数3种方法

    float floor ( float value)    舍去法取整 返回不大于 value 的下一个整数,将 value 的小数部分舍去取整.floor() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大. 复制代码 代码如下: echo floor(4.3);   // 4 echo floor(9.999); // 9 float ceil ( float value)    进一法取整 返回不小于 value 的下一个整数,value 如果有小数部分

  • c++ 一个二进制串转化为整数的解决方法

    代码如下: 复制代码 代码如下: <SPAN style="FONT-SIZE: 18px"> char* p = "1010110001100"; int n = 0; for(int i=0;i<strlen(p); i++) {  n = n * 2 + (p[i] - '0'); } printf("%d\n", n);</SPAN>

  • C++实现LeetCode(12.整数转化成罗马数字)

    [LeetCode] 12. Integer to Roman 整数转化成罗马数字 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol       Value I                   1 V                  5 X                 10 L                  50 C                100

  • javascript将浮点数转换成整数的三个方法

    Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt 位运算符 Math.floor Math.ceil Description 一.parseInt 1. 实例 parseInt("13nash");//13 parseInt("")// NaN parseInt("0xA") //10(十六进制) parseInt(" 13")//13 parseInt("070&

  • PHP中将字符串转化为整数(int) intval() printf() 性能测试

    背景.概述 早在Sql注入横行的前几年,字符串转化为整数就已经被列为每个web程序必备的操作了.web程序将get或post来的id.整数等值强制经过转化函数转化为整数,过滤掉危险字符,尽可能降低系统本身被Sql注入的可能性. 现如今,虽然Sql注入已经逐渐淡出历史舞台,但是,为了保证web程序的正常运行,减少出错概率,更好的保证用的满意度,我们同样需要将用户的不正确输入转化为我们所需要的. 转化方式 在PHP中,我们可以使用3种方式将字符串转化为整数. 1.强制类型转换方式 强制类型转换方式,

  • FireFox下XML对象转化成字符串的解决方法

    解决方法如下: 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>xml转化成字符串</title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script language=&qu

随机推荐