关于汉字字符串比较和排序

输入6个不等长字符串,将这6个字符串按照字符串长度排序,并按从长到短的顺序输出字符串。
输入样例:

美国
巴基斯坦
乌兹别克斯坦
哈萨克斯坦
俄罗斯
中华人民共和国

输出样例:

中华人民共和国
乌兹别克斯坦
哈萨克斯坦
巴基斯坦
俄罗斯
美国

长度用strlen就行比较

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

会结构体吗?结构体里存个长度再存个字符串

#include <stdio.h>

int main()
{
    int i,j;
    char a[6][100];
    char *b[6],*t;
    for(i=0;i<6;i++)
    {
        scanf("%s",a[i]);
        b[i]=a[i];
    }
    for(i=0;i<6;i++)
    {
        for(j=i+1;j<6;j++)
        {
            if(strlen(b[i])<strlen(b[j]))
            {
                t=b[i];
                b[i]=b[j];
                b[j]=t;
            }
        }
    }
    for(i=0;i<6;i++)
    {
        printf("%s",b[i]);
    }
}