在主函数中输入10个不等长的字符串,用指针数组处理字符串,将其排序,输出
void sort_str(char *str[])
{
//简单选择排序
for (int i = 0; i < 9; i++)
{
int k = i;
for (int j = i+1; j < 10; j++)
{
if (strcmp(str[k], str[j]) > 0)
{
k = j;
}
}
if (k != i)
{//交换的是地址
char *p = str[k];
str[k] = str[i];
str[i] = p;
}
}
}
int main()
{
char str[10][20] = { "xiaoli","baoqingtian","zhngheizi","sandada","niuxiao","chao","gaolibai","baobao","heidada","chensasan" };
char *p[10];
for (int i = 0; i < 10; i++)
{
p[i] = str[i];//将str的第i行的首地址付给指针数组的第i个变量
}
sort_str(p);
for (int i = 0; i < 10; i++)
{
printf("%s\n", p[i]);//此时p[i]为第i个元素的内容
}
}