比對版本號again~~~~~
後面通通都帶零的話也算是合法輸入,
是想逼死誰~~~~~~~
(對啦我就是只會笨解法, 哭)
Compare Version Numbers
int compareVersion(char* version1, char* version2) {
char *p1, *p2, *pp1, *pp2;
char buf1[20],buf2[20];
int v1,v2;
bool e1=0,e2=0;
pp1 = version1;
pp2 = version2;
while(e1!=1 || e2!=1)
{
if (e1)
{
v1 = 0;
}
else
{
memset(buf1,0,20);
p1 = strstr(pp1,".");
if (p1 != NULL)
{
strncpy(buf1, pp1, (p1-pp1));
v1 = atoi(buf1);
}
else
{
e1 = 1;
v1 = atoi(pp1);
}
}
if (e2)
{
v2 = 0;
}
else
{
memset(buf2,0,20);
p2 = strstr(pp2,".");
if (p2 != NULL)
{
strncpy(buf2, pp2, (p2-pp2));
v2 = atoi(buf2);
}
else
{
e2 = 1;
v2 = atoi(pp2);
}
}
if (v1 > v2)
return 1;
else if (v1 < v2)
return -1;
if (!e1)
pp1 = p1+1;
if (!e2)
pp2 = p2+1;
}
return 0;
}
沒有留言:
張貼留言