比較時,從字符串最左邊的一個字符開始,兩個字符串之間一個字符一個字符的比較,直接出現差異、或者其中一個串結束為止;
-
比如ABC與ACDE比較,第一個字符"A"相同,繼續比較第二個字符,由於第二個字符是"C">"B",所以不再繼續比較,結果就是"ACDE"大於"ABC";
-
再如ABC與ABC123比較,比較三個字符后,"ABC"字符串長度小於"ABC123",結果就是"ABC123"大於"ABC";
-
再如C與ABC123比較,由於"C"第一個字符大於"A",所以結果就是"C"大於"ABC123"。
-
從第一個字符相比,大者為大,小者為小,若相等,則繼續比較后面的字符;
所以,長度不能直接決定大小,字符串的大小是由左邊開始最前面的字符決定的。
//傳入兩個參數,一個字符串地址,一個字符串長度
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