字符串大小比较(排序)
比较时,从字符串最左边的一个字符开始,两个字符串之间一个字符一个字符的比较,直接出现差异、或者其中一个串结束为止;
-
比如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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库