字符串大小比较(排序)

比较时,从字符串最左边的一个字符开始,两个字符串之间一个字符一个字符的比较,直接出现差异、或者其中一个串结束为止;

  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

posted @   程序员没有头发  阅读(2268)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示