zoukankan      html  css  js  c++  java
  • ip地址转换

    char* ip_long2str(const unsigned long ip, char *pDest)
    {
    unsigned char pTmp[4]={0};

    *(unsigned int*)pTmp=ip;
    sprintf(pDest, "%d.%d.%d.%d", *(pTmp+0),*(pTmp+1),*(pTmp+2),*(pTmp+3));

    return pDest;
    }

    int ATOI(const char *pSrc, const int size, unsigned char *iDest)
    {
    int i=0;

    while(*(pSrc+i) && i<size && (*iDest=*iDest*10+*(pSrc+i)-'0') && ++i);

    return *iDest;
    }

    unsigned long ip_str2long(const char *pSrc, unsigned long *ip)
    {
    int i=0;
    int j=0;
    int k=0;
    int len=strlen(pSrc);
    unsigned char pTmp[4]={0};

    if (strlen(pSrc)>4)
    {
    while (1)
    {
    if ('.'==*(pSrc+i))
    {
    ATOI(pSrc, k, pTmp+j);
    j++;
    pSrc+=i+1;
    i=k=0;
    }
    else if (*(pSrc+i)=='\0')
    {
    ATOI(pSrc, k, pTmp+j);
    break;
    }

    k++;
    i++;
    }
    }
    else
    {
    strcpy((char*)pTmp,pSrc);
    }

    *ip=*(unsigned int*)pTmp;

    return *ip;
    }

    int main()
    {
    char pStr[33]={0};
    unsigned long ip=0;
    cout<<ip_str2long(ip_long2str(270174900, pStr), &ip)<<endl;

    return 0;
    }

  • 相关阅读:
    Bzoj1597 [Usaco2008 Mar]土地购买
    Bzoj1500 [NOI2005]维修数列
    模拟7 题解
    模拟6 题解
    模拟5 题解
    远古杂题 2
    远古杂题 1
    [NOIP2013]华容道 题解
    奇袭 CodeForces 526F Pudding Monsters 题解
    图论杂题
  • 原文地址:https://www.cnblogs.com/ccmfc/p/2279697.html
Copyright © 2011-2022 走看看