/* 关于指针数组、函数调用、字符串函数运用的例程:将多个字符串按字母顺序输出*/
#include <stdio.h>
void sort(char *str[],int n) /*定义排序函数sort*/
{ /*花括号独占一行*/
char *temp; /*定义一个指向字符类型名叫temp的指针变量*/
int i,j,k; /*定义整型变量i,j,k*/
for(i=0;i<n-1;i++) /*for循环,数组元素一共比较了n次*/
{ /*for循环执行语句有数条时用花括号来界定范围*/
k=i; /*设当前数组元素排序为首并记录下标*/
for(j=i+1;j<n;j++) /*二重for循环嵌套来循环比较*/
if(strcmp(str[k],str[j])>0) k=j; /*用strcmp()字符串比较函数比较交换*/
if(k!=i) /*if条件语句,判断假定的数组下标有没有改变*/
{temp=str[i];str[i]=str[k];str[k]=temp;} /*数组元素交换*/
} /*外层for循环执行语句结束*/
} /*花括号独占一行*/
/*为了程序易读,留一行空语句分割程序层次*/
int main() /*主函数*/
{ /*花括号独占一行*/
int i,n=4; /*定义整型变量i,n,n赋初值*/
char *string[4]={"FORTRAN","PASCAL","BASIC","C"}; /*定义指针型数组并赋值*/
sort(string,n); /*调用函数*/
for(i=0;i<n;i++) /*循环输出指针数组各个元素*/
printf("%s\n",string[i]);
sleep(50000); /*屏幕停留50000mS,即DOS窗口停留50秒*/
return 0; /*主函数返回值*/
}
|