编程求助,,,
题目:编程实现一个比较任意两个软件版本号大小的函数,如 1.2.3a 和 1.2.4b 比较,后者版本号更大,请考虑各种情况,不可以使用系统提供的比较函数。实现:
#include <iostream>
using namespace std;
int main()
{
cout<<"请输入任意两个软件版本号"<<endl;
string s1,s2;
int flag=0;
int i=0;
cin>>s1>>s2;
for(i=0; i<s1.length()&&i<s2.length(); i++)
{
if(s1[i]=='.'||s2[i]=='.')
{
if(s1[i] == s2[i])
{
continue;
}
else if(s1[i]=='.'&&s2[i]!='.')
{
flag = -1;
break;
}
else if(s1[i]!='.'&&s2[i]=='.')
{
flag = 1;
break;
}
}
else
{
if(s1[i] == s2[i])
{
continue;
}
else if(s1[i] > s2[i])
{
flag = 1;
break;
}
else if(s1[i] < s2[i])
{
flag = -1;
break;
}
}
}
if(flag==0)
{
if(s1.length()==s2.length())
{
cout<<"软件版本号相同"<<endl;
}
else if(s1.length()>s2.length())
{
cout<<"第一个软件版本号大"<<endl;
}
else if(s1.length()<s2.length())
{
cout<<"第二个软件版本号大"<<endl;
}
}
else if(flag==1)
{
cout<<"第一个软件版本号大"<<endl;
}
else if(flag==-1)
{
cout<<"第二个软件版本号大"<<endl;
}
}
这个方法太麻烦,也不知道对不对,欢迎大家指正,请教大家有没有更好的方法?