字符串和整型相互转换

    支持BGP 4-octets AS Num,EDIT对话框支持两种输入方式,一种是输入四字节整型,另一种是点分类型输入,这就需要

类型转换。

/*****************************************************************************

【功能】把字符串转换为整型,如果大于65535则说明用户按ASPLAIN输入

******************************************************************************/


ULONG ConvertCStringToInterger(CString str)
{
 char *temp;
 unsigned long ulAs = 0;
 
 unsigned int AS[2] = {0};
 
 char a[100];
 memset(a, 0, 100);
 
 strncpy(a,(LPCTSTR)str,sizeof(a));
 
 temp = strtok(a, ".");
 int i = 0;
 while ((temp != NULL)&&(i < 2))
 {
  AS[i] = atoi(temp);
  temp = strtok(NULL, ".");
  i++;
 }
 
 if (i == 1) {
  ulAs = AS[0];
 }
 else {
  if (AS[0] > 65535) {
   AS[0] = 65535;
  }
  
  ulAs = AS[0];
  
  if (AS[1] > 65535) {
   AS[1] = 65535;
  }
  
  ulAs = (((ulAs << 16) & 0xffff0000) | (AS[1] & 0xffff));
 }
 
 return ulAs;
}

/*************************************************************

【功能】把整型转换为CString类,此处统一转换为点分形式表示

**************************************************************/

CString ConvertIntergerToCString(ULONG ulAs)
{
 CString strAS;
 CString strAsHi, strAsLow;

 if (ulAs <=  65535)
 {
  strAS.Format("%u", ulAs); 
 }
 else
 {
  strAsHi.Format("%u.", ulAs >> 16);
  strAsLow.Format("%u", ulAs & 0xffff);
  strAS = strAsHi + strAsLow;
 }

 return strAS;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值