[C语言]使用指针将输入的多个字符串按长度升序排序

[C语言]使用指针将输入的多个字符串按长度升序排序

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;
}

3、截图

请添加图片描述

猜你喜欢

转载自blog.csdn.net/a6661314/article/details/124541557
今日推荐