C语言-字符串排序

本题要求编写程序,读入5个字符串,按由小到大的顺序输出。

输入格式:

输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。

输出格式:

按照以下格式输出排序后的结果:

After sorted:
每行一个字符串

输入样例:

red yellow blue black white

输出样例:

After sorted:
black
blue
red
white
yellow
#include "stdio.h"
#include "string.h"
//定义所需常量
#define MUN_STRING 5
#define MAX_LENGTH 80
//冒泡排序函数实现
void sortString(char string[MUN_STRING][MAX_LENGTH]){
    char temp[MAX_LENGTH];
    for (int i = 0; i < MUN_STRING-1; ++i) {
        for (int j = i+1; j < MUN_STRING; ++j) {
            //字符串比较函数判断大小
            if(strcmp(string[i],string[j]) > 0){
                //字符串复制函数交换字符串内容
                strcpy(temp,string[i]);
                strcpy(string[i],string[j]);
                strcpy(string[j],temp);
            }
        }
    }
}
int main(){
    //二维字符串数组
    char string[MUN_STRING][MAX_LENGTH];
    //循环输入
    for (int i = 0; i < MUN_STRING; ++i) {
        scanf("%s",string[i]);
    }
    //调用排序函数
    sortString(string);
    printf("After sorted:\n");
    //循环打印
    for (int i = 0; i < MUN_STRING; ++i) {
        printf("%s\n",string[i]);
    }
    return 0;
}

以上代码全为本人亲自手敲,可能有一些错误和不足之处,如有更好的方法和建议,欢迎您在评论区友善讨论。 

你可能感兴趣的:(C语言,c语言)