Code:
// 习题8.20: (指针)用指向指针的方法对5个字符串排序并输出
#include<stdio.h>
#include<string.h>
// 将字符串进行排序并输出
void fun(char (*p)[100]) {
char s[100];
for (int i = 0; i < 5; i++)
{
for (int j = i+1; j < 5; j++)
{
if (strcmp(*(p + i), *(p + j)) > 0)
{
strcpy(s, *(p + j));
strcpy(*(p + j), *(p + i));
strcpy(*(p + i), s);
}
}
}
printf("\n\n");
// 将进行排序后的结果进行输出
for (int i = 0; i < 5; i++)
{
puts(*(p+i));
}
}
int main() {
char str[5][100], (*p)[100];
p = str; // 将指针指向二位数组
printf("请您输入5个字符串:\n");
// 输入各个字符串
for (int i = 0; i < 5; i++)
{
gets_s(str[i]);
}
fun(p);
return 0;
}
成果: