输入字符串从大到小排序

输入5个字符串存放在指定二维字符数组中,要求使用指针数组在不改变原始二维字符数组的前提下,实现按从小到大排序后输出。

供参考:

#include<stdio.h>
#include<string.h>
void sort(char* p[],int n)
{
    int i, j;
    char* tmp; 
    for (i = 0; i < n - 1; i++)
        for (j = i + 1; j < n; j++)
            if (strcmp(p[i], p[j]) > 0) //从小到大
            {
                tmp = p[i]; p[i] = p[j]; p[j] = tmp;
            }
}
int main()
{
    int i;
    char* p[5], str[5][80];
    printf("Please enter 5 string:\n");
    for (i = 0; i < 5; i++) {   
        scanf("%s", str[i]);
        p[i] = str[i];   
    }                 
    sort(p, 5);
    printf("Now, the sequence is:\n");
    for (i = 0; i < 5; i++)
        printf("p:%s  str:%s\n", p[i], str[i]);
    return 0;
}