YTU OJ 2414: C语言习题 字符串排序

本文介绍了一个简单的字符串排序程序,包括输入、排序和输出三个核心函数。通过比较字符串的字典顺序来实现排序,适用于计算机编程入门教学。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

输入n个字符串,将它们按字母由小到大的顺序排列并输出。编写三个函数实现,input 用于输出n个字符串,sortstr用于排序n个字符串,output 用于输出n个字符串。

Input

第一行 n
第二行到第n+1行,每行一个字符串

Output

排序后的字符串

Sample Input

3
YTU
ACM
COM

Sample Output

ACM
COM
YTU

HINT

 主函数已给定如下,提交时不需要包含下述主函数



/* C++代码 */

int main()

{

   string str[10];

   int n;

   cin>>n;

   input( str, n);

   sortstr( str, n);

   output( str, n);

   return 0;

}

Source

lyh


【AC代码】:

#include <iostream>
using namespace std;
void input(string str[],int n)
{
    for(int i=0; i<n; i++)
        cin>>str[i];
}
void sortstr(string str[],int n)
{
    string s;
    for(int i=0; i<n; i++)
        for(int j=0; j<n-1; j++)
            if(str[i]<str[j])
            {
                s=str[i];
                str[i]=str[j];
                str[j]=s;
            }
}
void output(string str[],int n)
{
    for(int i=0; i<n; i++)
        cout<<str[i]<<endl;
}
int main()
{
    string str[10];
    int n;
    cin>>n;
    input( str, n);
    sortstr( str, n);
    output( str, n);
    return 0;
}

### C语言等长字符串排序的示例代码 以下是基于用户需求提供的一份完整的C语言实现方案,用于对等长字符串进行排序: #### 示例代码 ```c #include <stdio.h> #include <string.h> // 自定义比较函数,用于qsort排序 int compare(const void *a, const void *b) { return strcmp(*(const char **)a, *(const char **)b); } int main() { char strArray[10][20]; // 假设最多存储10个等长字符串,每个字符串最长为19字符 int i; printf("请输入10个等长的字符串:\n"); for (i = 0; i < 10; i++) { scanf("%s", strArray[i]); // 输入字符串 } // 使用qsort函数对字符串数组进行排序 qsort(strArray, 10, sizeof(strArray[0]), compare); printf("排序后的字符串列表如下:\n"); for (i = 0; i < 10; i++) { printf("%s\n", strArray[i]); } return 0; } ``` 此代码实现了通过`qsort()`函数对固定数量的等长字符串进行排序的功能。其中,`compare`函数作为自定义的比较逻辑被传递给`qsort()`[^4]。 --- ### 关键点解析 1. **字符串输入** 用户可以通过标准输入依次录入10个等长字符串。这里假设每条字符串的最大长度不超过19字符(含结束符`\0`),因此分配了一个二维字符数组`strArray[10][20]`来存储这些字符串[^3]。 2. **使用`qsort`函数** `qsort`是一个通用的快速排序库函数,在头文件`<stdlib.h>`中声明。它接受四个参数:待排序的数据区域、数据项的数量、单个数据项的大小以及一个指向比较函数的指针。在此处,我们利用了`strcmp`来进行字典顺序上的比较操作[^4]。 3. **输出结果** 排序完成后,程序会逐一打印出已经按照字母升序排列好的字符串序列[^1]。 --- ### 注意事项 如果题目要求严格限定不允许修改原始字符串,则可以考虑采用指针数组的方式间接调整访问次序而不实际变动原内存位置中的内容[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值