首页 > 解决方案 > 不确定如何按字母顺序对名称进行排序

问题描述

编写一个程序,要求用户输入三个名字,然后显示名字

按字母顺序排序。假设没有一个名称是相同的。例如,

如果用户输入 Charlie、Leslie 和 Andy,程序将显示:

安迪

查理

莱斯利

//System Libraries
#include <iostream>
#include <string>//Input/Output Library
using namespace std;

//User Libraries

//Global Constants, no Global Variables are allowed
//Math/Physics/Conversions/Higher Dimensions - i.e. PI, e, etc...

//Function Prototypes

//Execution Begins Here!
int main(int argc, char** argv) {

    string name1,
           name2,
           name3;

    cout<<"Sorting Names\n";
    cout<<"Input 3 names\n";
    cin>>name1;
    cin>>name2;
    cin>>name3;

    cout<<name1<<endl;
    cout<<name2<<endl;
    cout<<name3;


    return 0;
}

预期的:

排序·姓名↵ 输入·3·姓名↵ Andy↵ Charly↵ Leslie

实际的:

排序·姓名↵ 输入·3·姓名↵ Charly↵ Leslie↵ Andy

标签: c++

解决方案


int main()
{
    std::set<std::string> sortedItems;

    for(int i = 1; i <= 5; ++i)
    {
        std::string name;
        std::cout << i << ". ";
        std::cin >> name;

        sortedItems.insert(name);
    }

    std::for_each(sortedItems.begin(), sortedItems.end(), &print);
    return 0;
}

我发现这个你可以尝试使用 for 循环对名称进行排序和吐出。归功于AngelCastillo,因为他发布了这个你可以进一步看到@ https://stackoverflow.com/a/18582892/10322492


推荐阅读