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

 更新时间:2016年09月25日 20:33:34   投稿:jingxian  
下面小编就为大家带来一篇将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字符串输入转化成整数的实现方法的全部内容了,希望对大家有所帮助,多多支持脚本之家~

相关文章

  • Qt自绘实现苹果按钮滑动效果的示例代码

    Qt自绘实现苹果按钮滑动效果的示例代码

    这篇文章主要介绍了Qt自绘实现苹果按钮滑动效果的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • OpenCV绘制正多边形的方法

    OpenCV绘制正多边形的方法

    这篇文章主要为大家详细介绍了OpenCV绘制正多边形的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 简单分析C语言中指针数组与数组指针的区别

    简单分析C语言中指针数组与数组指针的区别

    这篇文章主要介绍了C语言中指针数组与数组指针的区别,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • 浅谈带缓冲I/O 和不带缓冲I/O的区别与联系

    浅谈带缓冲I/O 和不带缓冲I/O的区别与联系

    下面小编就为大家带来一篇浅谈带缓冲I/O 和不带缓冲I/O的区别与联系。小编觉得挺不错的现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C语言版飞机大战游戏

    C语言版飞机大战游戏

    这篇文章主要为大家详细介绍了C语言版飞机大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • C语言详细讲解二分查找用法

    C语言详细讲解二分查找用法

    二分查找法,又叫做折半查找法,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列
    2022-04-04
  • 详解C++ 多态的实现及原理

    详解C++ 多态的实现及原理

    这篇文章主要介绍了C++ 多态的实现及原理,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • C语言实现校园导游系统

    C语言实现校园导游系统

    这篇文章主要为大家详细介绍了C语言实现校园导游系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • c++创建二维动态数组与内存释放问题

    c++创建二维动态数组与内存释放问题

    这篇文章主要介绍了c++创建二维动态数组与内存释放问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • 数组循环移位操作实例

    数组循环移位操作实例

    这篇文章介绍了数组循环移位操作实例,有需要的朋友可以参考一下
    2013-09-09

最新评论