1、题目
编写一个函数,利用指针将输入的多个字符串按长度升序排序
要求:子函数 void StrSort(char *p[N],int n)
示例:
输入:
HU
KOBE
BRYANT
CCZU
输出:
HU
KOBE
CCZU
BRYANT
2、完整代码
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#define N 4
void StrSort(char* p[N], int n) {
int i, j;
char* ch;
//冒泡排序法
for (i = 0; i < N; i++)
{
for (j = 0; j < N - i - 1; j++)
{
//如果后面的比前面的长就交换指针
if (strlen(p[j]) > strlen(p[j + 1]))
{
ch = p[j];
p[j] = p[j + 1];
p[j + 1] = ch;
}
}
}
}
int main() {
char* str[N];
int i;
char* ch;
for (i = 0; i < N; i++) {
str[i] = (char*)malloc(sizeof(char) * 10);
gets(str[i]);
}
StrSort(str, 4);
for (i = 0; i < N; i++)
printf("%s\n", str[i]);
return 0;
}