IP地址转换整型(算法练习)

// ipTrans.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>

typedef union
{
	unsigned char data[4];
	unsigned int ip;
}IP;

unsigned int TransIP(char *pstrIp)
{
	IP ipstr = {0};
	unsigned char temdata[3] = {0};
	int i = 0, k = 0, point = 0, t = 0;

	while(pstrIp[i] != '\0'){
		
		if(pstrIp[i] != '.')
		{ 			  		
			 if(point > 0)
			 {
				 ipstr.data[k++] = (temdata[0] - '0')*100 + (temdata[1] - '0')*10 +(temdata[2] - '0');
				 point = 0;
				 t = 0;
			 }
			 temdata[t++] = pstrIp[i];			
		}
		else
		{
			point++;
		}

		i++;
	}

	ipstr.data[k] = (temdata[0] - '0')*100 + (temdata[1] - '0')*10 +(temdata[2] - '0');
	return ipstr.ip;
}


int _tmain(int argc, _TCHAR* argv[])
{
	char *ipstr = "169.168.1.1";
	unsigned int ip = TransIP(ipstr);
	printf("%s转换为整数为%u", ipstr,ip);
	system("pause");
	return 0;
}

 上面是在vs2010上编写的代码,运行结果如下

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值