crlmax
2020-06-21 12:02
采纳率: 75%
浏览 125

这题怎么做啊?求C++代码

字符串排序

【题目描述】

给出 n 个字符串,将它们按照字典序排序。

【输入格式】

从标准输入读入数据。 第一行包含一个 . 非 . 负整数 n,表示字符串的个数,保证 n≤105。 接下来 n 行,每行一个字符串。字符串的字符 ASCII 码保证在 [32..126] 中。单个 字符串的长度没有保证,可以是 0。字符串的长度总和不超过 106。

【输出格式】

输出到标准输出。 输出一行,把排序后的字符串用制表符\t 连起来输出,表示排序后的结果。

图片说明

求C++代码,在线等

另外,我用人格担保,回答了正确了肯定是要采纳的

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • HawaiiHello 2020-06-21 12:47
    已采纳
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        int num_of_string = 0;
    
        cin >> num_of_string;
    
        cin.get();
        string * s = new string[num_of_string];
    
        for (int i = 0; i < num_of_string; ++i)
        {
            getline(cin, s[i]);
        }
    
        for (int i = 0; i < num_of_string - 1; ++i)
        {
            for (int j = 0; j < num_of_string - i - 1; ++j)
            {
                if (s[j].compare(s[j + 1]) > 0)
                {
                    string temp = s[j];
                    s[j] = s[j + 1];
                    s[j + 1] = temp;
                }
            }
        }
    
        for (int i = 0; i < num_of_string; ++i)
        {
            cout << s[i] + (i == num_of_string - 1 ? "" : "\t");
        }
    
        delete[] s; 
    
        return 0;
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题