请问这个程序如果要由用户动态输入字符串,应该怎么改

img

参考如下【使用 gets 函数】:

#include<stdio.h>
#include<string.h>
#include<malloc.h>

void sort(char * name[], int n);
void print(char * name[], int n);

int main()
{
    int n;
    printf("input n: ");
    scanf("%d", &n);

    fflush(stdin); // 清空输入缓冲区

    char* name[n];

    for (int i = 0; i < n; i++)
    {
        name[i]=(char *)malloc(sizeof(char)*100); // 为每个指针申请开设100字符的存储空间
        gets(name[i]);
    }

    sort(name, n);

    print(name, n);

    return 0;
}

void sort(char * name[], int n)
{
    int i,j,noswap;
    char * t;
    for(i=0;i< n-1; i++)
    {
        noswap=1;
        for(j=n-1;j>i;j--)
            if(strcmp(name[j-1], name[j]) > 0)
            {
                t=name[j-1];
                name[j-1]=name[j];
                name[j]=t;
                noswap=0;
            }
        if(noswap)    
            break;
    }
}

void print(char * name[], int n)
{
    printf("\noutput:\n");
    for (int i = 0; i < n; i++)
    {
        printf("%s\n", name[i]);
    }
}

img


如有帮助,欢迎采纳哈!

在这里插入图片描述

本人的开源项目,欢迎star支持下!!!