#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;
}
}
}
}