c语言字符串排序问题

键盘输入三个字符串,编写嵌套函数,对三个字符串进行由小到大排序,并输出排序结果。请问有没有人能帮忙解答一下呢,下面是具体要求
1)在主函数中获取键盘输入三个字符串到 str[3][80]中.
2)将数组名作为参数传递给函数 1,函数 1 的功能是实现排序。
3)在函数 1 中,进行串的两两比较时,将两个串名作为参数传递给函数 2,函数 2 的功能是比较大小,并将小串前置,如 str[0]与 str[1]比较后,str[0]为较小的串。
4)在主函数中按照顺序输出排序结果


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h> 
#include<string.h> 


void swap(char* i, char* index)
{
    char temp[80];
    strcpy(temp, i);
    strcpy(i, index);
    strcpy(index, temp);
}
void sort(char str[][80])
{
    //简单选择排序 
    int i, j, index;

    for (i = 0;i < 3;i++)
    {
        int index = i;
        for (j = i + 1;j < 3;j++)
        {
            if (strcmp(str[i], str[j]) > 0)
                index = j;
        }
        if (i != index)
            swap(str[i], str[index]);
    }

}
int main()
{
    char str[3][80];
    int i, j;
    for (i = 0;i < 2;i++)
    {
        printf("输入字符串:");
        scanf("%s", str[i]);
    }
    sort(str);
    for (i = 0;i < 3;i++)
        printf("%s", str[i]);
    return 0;
}

img

学到了,谢谢兄弟!