在oj刷题,遇见一题字符串排序题。
脑海里瞬间闪过数组排序。
思路有了,打开题解看看别人的思路,发现好多人的排序方法显得比较臃肿,可能也是我的水平不够,欣赏不来吧。
不过用冒泡法排序的时候一定要记得字符串不可以通过值传递的方式来修改!!!
谨记strcpy大法好!!!
附上原题及代码;
题目:输入三个字符串,按由小到大的顺序输出
1 #include2 #include 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"); //返回值为-1strcmp("A","C") //返回值为-1 (不同系统的返回值不同但符号相同) strcmp("B","A"); //返回值为1;strcmp("A","A"); //返回值为0;