标题:用string类实现的提取IP的各个域
只看楼主
df19861017
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2010-9-30
结帖率:100%
 问题点数:0 回复次数:0 
用string类实现的提取IP的各个域
之前那个是用字符串指针实现的,发现用string类实现比较简单些
#include <iostream>
#include <string>
using namespace std;

bool isDigit(char ch)
{
    if((ch-'0')>=0 && (ch-'0')<=9)
        return true;
    return false;
}

unsigned int strToIP(string str,string &temp)
{
    unsigned int result=0;
    int value;
    int i=0;
    while((value=isDigit(str[i])?(str[i]-'0'):-1)>=0)
    {
        result=result*10+value;
        ++i;
        if(i==str.size())
            goto label;
    }
label:
    if(i!=str.size())
        temp=str.substr(i+1,str.size()-i-1);
    else
        temp="";
    return result;
}

void str_to_myip(string str)
{
    string temp;
    for(int i=0;i<4;++i)
    {
        unsigned int value=(!str.empty())?strToIP(str,temp):0;
        cout<<value<<endl;
        str=temp;
    }
}

int main()
{
    string ip="192.168.1.100";
    str_to_myip(ip);
    return 0;
}
搜索更多相关主题的帖子: false 字符串 
2010-12-26 22:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-329989-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.198454 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved