2025-03-24 学习记录--C/C++-PTA 习题8-7 字符串排序

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

习题8-7 字符串排序

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

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

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

After sorted:
每行一个字符串

输入样例:

red yellow blue black white

输出样例:

After sorted:
black
blue
red
white
yellow

二、代码(C语言)⭐️

#include <stdio.h>  // 包含标准输入输出库,用于使用输入输出函数(如 scanf 和 printf)
#include <string.h> // 包含字符串处理函数库,用于使用字符串相关函数(如 strcmp 和 strcpy)

int main() {
    char strs[5][82];  // 定义二维字符数组 strs,用于存储 5 个字符串,每个字符串最多 81 个字符

    // 输入 5 个字符串
    for (int i = 0; i < 5; i++) {  // 外层循环,遍历 5 个字符串
        scanf("%s", strs[i]);  // 输入第 i 个字符串
    }

    // 使用冒泡排序对字符串进行排序
    for (int i = 0; i < 5; i++) {  // 外层循环,遍历每个字符串
        for (int j = i + 1; j < 5; j++) {  // 内层循环,从 i+1 开始遍历剩余字符串
            if (strcmp(strs[i], strs[j]) > 0) {  // 如果 strs[i] 大于 strs[j]
                char temp[82];  // 定义临时字符数组 temp,用于交换字符串
                strcpy(temp, strs[j]);  // 将 strs[j] 复制到 temp
                strcpy(strs[j], strs[i]);  // 将 strs[i] 复制到 strs[j]
                strcpy(strs[i], temp);  // 将 temp 复制到 strs[i]
            }
        }
    }

    // 输出排序后的字符串
    printf("After sorted:\n");  // 输出提示信息
    for (int i = 0; i < 5; i++) {  // 遍历排序后的字符串
        printf("%s\n", strs[i]);  // 输出第 i 个字符串
    }

    return 0;  // 程序正常结束
}

在这里插入图片描述

三、知识点 ⭐️

1scanf中,遇到%s,不加&
2比较字符串大小strcmp
3复制字符串strcpy

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呀小萝卜儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值