软件版本号比较(字符串比较)

Posted findumars

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件版本号比较(字符串比较)相关的知识,希望对你有一定的参考价值。

7.版本号比较(字符串比较)

技术分享图片
int CompareVersion(QString strVer1, QString strVer2)
{
    if ( !strVer1.compare( strVer2 ) )
    {
        return 0;
    }

    QStringList list1 = strVer1.split( "." );
    QStringList list2 = strVer2.split( "." );

    int iTotal1 = list1.count();
    int iTotal2 = list2.count();

    int iTotal=iTotal1>iTotal2?iTotal2:iTotal1;

    int iValue1 = 0, iValue2 = 0;
    bool ibOK1 = false, ibOK2 = false;
    for ( int iNum = 0; iNum < iTotal; ++iNum )
    {
        iValue1 = list1[iNum].toInt( &ibOK1 );
        if (!ibOK1)
        {
            iValue1=0;
        }

        iValue2 = list2[iNum].toInt( &ibOK2 );
        if (!ibOK2)
        {
            iValue2=0;
        }

        if (iValue1==iValue2)
        {
            continue;
        }
        else if ( iValue1 < iValue2 )
        {
            return -1;
        }
        else
        {
            return 1;
        }
    }

    return iTotal1<iTotal2?-1:1;
}
技术分享图片

测试:

CompareVersion("16.01.19", "16.01.19") //return 0;
CompareVersion("16.01.19", "16.01.18") //return 1;
CompareVersion("16.01.18", "16.01.19") //return -1;

 

https://www.cnblogs.com/sz-leez/p/6537004.html

以上是关于软件版本号比较(字符串比较)的主要内容,如果未能解决你的问题,请参考以下文章

Python3版本号比较代码实现

Java中高效的版本号比较

js 比较版本号

比较版本号字符串

华为OD机试 - 获取最大软件版本号(Python)| 真题含思路

软件版本号比较 java工具类