输入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]);
}
}