关于#c语言#的问题:读入N个字符串,并且按照升序将其排序后输出

读入N个字符串,并且按照升序将其排序后输出

请问用指针的方法(交换字符首串地址)怎么写啊?

定义指针数组,然后交换首地址

#include <stdio.h>
int main()
{
    char *str[1000];
    int N;
    printf("请输入字符串数量:");
    scanf("%d",&N);
    getchar();
    for(int i=0;i<N;i++)
    {
        str[i] = (char*)malloc(sizeof(char)*100);
        gets(str[i]);
    }
    for(int i=0;i<N-1;i++)
    {
        for(int j=0;j<N-i-1;j++)
        {
            if(strcmp(str[j],str[j+1]) > 0)
            {
                char *p = str[j];
                str[j] = str[j+1];
                str[j+1] = p;
            }
        }
    }
    for(int i=0;i<N;i++)
    {
        printf("%s\n",str[i]);
        free(str[i]);
    }
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632