軟件版本號比較(字符串比較)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM