#include<stdio.h>
#include<string.h>
int main()
{
void sort( char *name[], int n);
void print(char *name[], int n);
char *name[5] = { "follow me", "basic", "great wall", "fortran", "computer design" };
//定義指針數組,5個元素分別指向5個字符串的首地址;
int number = 5;
sort(name, number);//對字符串進行排序,選擇排序的方法;
print(name, number);
return 0;
}
void sort(char *name[], int n)
{
int i, j;
char *temp;
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if (strcmp(name[i], name[j]) > 0)
{
temp = name[i];
name[i] = name[j];
name[j] = temp;
}
}
void print(char *name[], int n)
{
for (int i = 0; i < n; i++)
printf("%s\n", name[i]);
}
#include <stdio.h>
#include <string.h>
#define M 150 /* 最多的字符串個數 */
#define N 10 /* 字符串最大長度 */
void SortString(char *ptr[], int n);
int main()
{
int i, n;
char a[M][N];
char *pStr[M];
printf("How many countries?\n");
scanf("%d",&n);
getchar(); /* 讀走輸入緩衝區中的回車符 */
printf("Input their names:\n");
for (i=0; i<n; i++)
{
pStr[i] = a[i];
gets(pStr[i]); /* 輸入n個字符串 */
}
SortString(pStr, n); /* 字符串按字典順序排序 */
printf("Sorted results:\n");
for (i=0; i<n; i++)
{
puts(pStr[i]); /* 輸出排序後的n個字符串 */
}
return 0;
}
void SortString(char *ptr[], int n)
{
int i, j;
char *temp = NULL;
for (i=0; i<n-1; i++)
{
for (j=i+1; j<n; j++)
{
if (strcmp(ptr[j], ptr[i]) < 0)
{
temp = ptr[i];
ptr[i] = ptr[j];
ptr[j] = temp;
}
}
}
}