字符串大小比較(排序)


比較時,從字符串最左邊的一個字符開始,兩個字符串之間一個字符一個字符的比較,直接出現差異、或者其中一個串結束為止;

  1. 比如ABC與ACDE比較,第一個字符"A"相同,繼續比較第二個字符,由於第二個字符是"C">"B",所以不再繼續比較,結果就是"ACDE"大於"ABC";

  2. 再如ABC與ABC123比較,比較三個字符后,"ABC"字符串長度小於"ABC123",結果就是"ABC123"大於"ABC";

  3. 再如C與ABC123比較,由於"C"第一個字符大於"A",所以結果就是"C"大於"ABC123"。

  4. 從第一個字符相比,大者為大,小者為小,若相等,則繼續比較后面的字符;

所以,長度不能直接決定大小,字符串的大小是由左邊開始最前面的字符決定的。

//傳入兩個參數,一個字符串地址,一個字符串長度
void mysort(string s[],int len)
{
    //使用冒泡排序
    for(int i=0;i<len;i++)
    {
        for(int j=0;j<i;j++)
        {
            if(s[i] < s[j])
            {
                  string temp = s[i];
                    s[i] = s[j];
                    s[j] = temp;
            }
        }
    }
}
//打印排序后的字符串
void printArray(string s[],int len)
{
    for(int i=0;i<len;i++)
    {
         cout << s[i] << "  ";
    }
    cout << endl;
}

int main()
{
    //定義一個字符串數組,存放5個字符串
    string s[5] = {"object-c","c++","java","py","basic"};

    mysort(s,5);
    printArray(s,5);

}

輸出結果:

basic  c++  java  object-c  py

特別注意:
如果遇到大小寫、字母和數字等進行比較時,則按照各自字符的ASCII碼值來進行比較;
如A與a比較,A的ASCII碼值是65,a的ASCII碼值是97,則a>A


免責聲明!

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



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