|
发表于 2012-7-30 17:55:15
|
显示全部楼层
- #include"stdafx.h"
- #include <stdio.h>
- #include <string.h>
- void main()
- {
- // name[i] 存放的是指向 字符串常量的地址,即name[i]就是char*类型的指针
- char *name[4]={"Fishc.com","www.fishc.com","home.fishc.com","Fishc.com/dz"};
- void sort(char *name[], int n );
- void print(char *name[],int n );
- print(name, 4 );
- printf("\n \n");
- sort( name, 4 );
- print(name, 4 );
-
- }
- void print(char *name[],int n )
- {
- int i;
- for (i=0;i<n;i++)
- {
- printf("%s\n",name[i]);
- }
-
- }
- void sort(char *name[], int n)
- {
-
- char *temp;
-
- int i,j,k;
- //此处仍然是冒泡排序
- for (i=0;i<n-1;i++)
- {
- k=i;
-
- for (j=i+1;j<n;j++)
- {
-
- //strcmp()对字符串常量按照字典表进行排序
- //name[k]是字符串常量指针
- if ( strcmp(name[k],name[j]) > 0 )
- {
- //此处就是将J赋值给K,其实循环里边就是I和J的比较而已,K就是个中间变量,别纠结太多
- k=j;
- }
- if(k!=i)
- {
- // name[i] 存放的是指向 字符串常量的地址(不是字符串本身),即name[i]就是char*类型的指针,所以可以temp = name[i]赋值
- //交换name[i]与name[k]的值
- temp = name[i];
- name[i]=name [k];
- name[k]=temp ;
- }
-
- }
- }
-
-
-
- }
复制代码 |
|