注册 登录
编程论坛 C++教室

大伙看看这段程序错在哪里?

df19861017 发布于 2010-12-26 16:51, 651 次点击
#include <iostream>
using namespace std;

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

unsigned int strToUL(char* ipAddress,char *&remain)
{
    unsigned int result=0,value;
    while((value=isDigit(*ipAddress)?((*ipAddress)-'0'):-1)>=0)
    {
        result=result*10+value;
        ++ipAddress;
    }
    remain=++ipAddress;
    return result;
}

void string_to_ip(char* ipAddress)
{
    int i=0;
    char *remain=NULL;
    for(i=0;i<4;++i)
    {
        unsigned int value=ipAddress?strToUL(ipAddress,remain):0;
        cout<<value<<endl;
        ipAddress=remain;
    }
}
int main()
{
    char ip[]="192.168.1.100";
    string_to_ip(ip);
    return 0;
}
4 回复
#2
secondsen2010-12-26 17:03
#include <iostream>
using namespace std;

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

int strToUL(char* ipAddress,char *&remain)
{
    int result=0,value;
    while((value=isDigit(*ipAddress)?((*ipAddress)-'0'):-1)>=0)
    {
        result=result*10+value;
        ++ipAddress;
    }
    remain=++ipAddress;
    return result;
}

void string_to_ip(char* ipAddress)
{
    int i=0;
    char *remain=NULL;
    for(i=0;i<4;++i)
    {
        int value=ipAddress?strToUL(ipAddress,remain):0;
        cout<<value<<endl;
        ipAddress=remain;
    }
}
int main()
{
    char ip[]="192.168.1.100";
    string_to_ip(ip);
    return 0;
}


unsigned  int 改成 int  测试没问题。。。汇报完毕
#3
df198610172010-12-26 17:04
知道了哪里错了!
#4
li_danwang2010-12-26 20:43
unsigned  int 改 int试试  
#5
xin3109232010-12-27 00:57
2楼正解
1