[C]字符串排序之-冒泡法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C]字符串排序之-冒泡法相关的知识,希望对你有一定的参考价值。
在oj刷题,遇见一题字符串排序题。
脑海里瞬间闪过数组排序。
思路有了,打开题解看看别人的思路,发现好多人的排序方法显得比较臃肿,可能也是我的水平不够,欣赏不来吧。
不过用冒泡法排序的时候一定要记得字符串不可以通过值传递的方式来修改!!!
谨记strcpy大法好!!!
附上原题及代码;
题目:输入三个字符串,按由小到大的顺序输出
1 #include <stdio.h> 2 #include <string.h> 3 4 int main() 5 { 6 char ar[3][100]; 7 char temp[100]; 8 int i,j; 9 10 for(i=0;i<3;i++) 11 { 12 scanf("%s",ar[i]); 13 } 14 for(i=0;i<2;i++) 15 { 16 for(j=0;j<2-i;j++) 17 { 18 if(strcmp(ar[j],ar[j+1])>0) 19 { 20 strcpy(temp,ar[j]); strcpy(ar[j],ar[j+1]); strcpy(ar[j+1],temp); 21 } 22 } 23 } 24 printf("%s\n%s\n%s\n",ar[0],ar[1],ar[2]); 25 26 return 0; 27 }
小知识:
strcmp("A","B"); //返回值为-1 strcmp("A","C") //返回值为-1 (不同系统的返回值不同但符号相同) strcmp("B","A"); //返回值为1; strcmp("A","A"); //返回值为0;
以上是关于[C]字符串排序之-冒泡法的主要内容,如果未能解决你的问题,请参考以下文章