下面的代码里只涉及到了数组,怎么改一下运用指针数组,结果不变?还是五个字符串按排序输出

#include <stdio.h>
#include <string.h>
int main()
{
char s[5][100],t[100];
int i,j;
for(i=0;i<5;i++)
gets(s[i]);
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
{
if(strcmp(s[j],s[j+1]) > 0)
{
strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
}
for(i=0;i<5;i++)
printf("%s\n",s[i]);
}

修改如下,供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    char s[5][100],*pt[5],*t; //修改
    int i,j;
    for(i=0;i<5;i++){
        gets(s[i]);
        pt[i] = s[i]; //修改
    }
    for(i=0;i<4;i++)
        for(j=0;j<4-i;j++)
        {
            if(strcmp(pt[j],pt[j+1]) > 0)
            {
                t =pt[j];      //strcpy(t,s[j]);  //修改
                pt[j]=pt[j+1]; //strcpy(s[j],s[j+1]);//修改
                pt[j+1]=t;     //strcpy(s[j+1],t); //修改
            }
        }
    for(i=0;i<5;i++)
        printf("%s\n",pt[i]);  // printf("%s\n",s[i]);//修改
    return 0;
}