IP与点分十进制数的字符串之间的转换(c++)(转)
2017-09-05 20:09
176 查看
#include "stdafx.h" #include <iostream> #include <string> //#include <windows.h> using namespace std; int IPToValue(const string& strIP) { //IP转化为数值 //没有格式检查 //返回值就是结果 int a[4]; string IP = strIP; string strTemp; size_t pos; size_t i=3; do { pos = IP.find("."); if(pos != string::npos) { strTemp = IP.substr(0,pos); a[i] = atoi(strTemp.c_str()); i--; IP.erase(0,pos+1); } else { strTemp = IP; a[i] = atoi(strTemp.c_str()); break; } }while(1); int nResult = (a[3]<<24) + (a[2]<<16)+ (a[1]<<8) + a[0]; return nResult; } string ValueToIP(const int& nValue) { //数值转化为IP //没有格式检查 //返回值就是结果 char strTemp[20]; sprintf( strTemp,"%d.%d.%d.%d", (nValue&0xff000000)>>24, (nValue&0x00ff0000)>>16, (nValue&0x0000ff00)>>8, (nValue&0x000000ff) ); return string(strTemp); } int main(void) { //对于218.92.189.40转化后-631456472 //cout<<hex<<-631456472 <<endl;//输出da5cbd28 string strIP= "218.92.189.40"; cout<<dec<<IPToValue(strIP)<<endl; //cout<<hex<<IPToValue(strIP)<<endl; cout<<ValueToIP(-631456472)<<endl; //IP为:218.92.176.82转化后 -631459758 strIP= "218.92.176.82"; cout<<dec<<IPToValue(strIP)<<endl; //cout<<hex<<IPToValue(strIP)<<endl; cout<<ValueToIP(-631459758)<<endl; return 0 ; }
相关文章推荐
- IP与点分十进制数的字符串之间的转换(c++)
- 笔试:使用fprintf和sscanf 判断IP字符串的正确性和数字IP之间的转换
- MySQL如何有效的存储IP地址及字符串IP和数值之间如何转换
- 如何在字符串形式的IP和整数形式的IP之间转换呢?
- 字符串和字符数组之间的转换
- CString 时间字符串、COleDateTime 和 CTime 类之间的转换
- 字符串string与char*之间的相互转换
- JSON对象和字符串之间的相互转换
- atoi() 函数与 itoa() 函数:字符串与数值之间的转换
- Mac地址和字符串之间的转换
- python 字符串与字典之间的转换
- Struts下的文本字符串和日期之间转换(2)
- C#数据类型转换——数值字符串和数值之间的转换
- 字符串之间转换
- JSON对象和字符串之间的相互转换
- C++中数字与字符串之间的转换
- 日期字符串(DateStr)与日期对象(Date)之间的转换
- SSIS无法在unicode和非unicode 字符串数据类型之间转换
- JSON对象与字符串之间的转换
- C#二进制与字符串之间的相互转换