按字母顺序显示用户的输入名称

Posted

技术标签:

【中文标题】按字母顺序显示用户的输入名称【英文标题】:show the user's input names in alphabetical order 【发布时间】:2016-02-13 09:44:58 【问题描述】:

我制作了一个程序,用户在其中输入 3 个名称,我将按字母顺序显示名称。 例如,如果用户输入 “查理”、“莱斯利”和“安迪”, 该程序将显示: 安迪、查理、莱斯利……

但我的输出是:

Enter a name: charlie

Enter a name: leslie

Enter a name: andy

andy leslie charlie 

再次输出:

Enter a name: abc

Enter a name: def

Enter a name: ghi

ghi def abc

我的输出总是按第一顺序显示第三个输入名称,然后是第二个,然后是第一个,不管我写了什么,它总是按这个顺序显示名称.... 请帮帮我。谢谢

const int size = 10;
    char name1[size];
    char name2[size];
    char name3[size];

    cout << "Enter a name: ";
    cin.getline(name1, size);
    cout << "Enter a name: ";
    cin.getline(name2, size);
    cout << "Enter a name: ";
    cin.getline(name3, size);


    if ("name1" > "name2" && "name1" > "name3")
    
        cout << name1 << " ";
        if ("name2" > "name3")
        
            cout << name2 << " " << name3 << endl;
        
        else
        
            cout << name3 << " " << name2 << endl;
        
    
    else if ("name2" > "name1" && "name2" > "name3")
    
        cout << name2 << " ";
        if ("name1" > "name3")
        
            cout << name1 << " " << name3 << endl;
        
        else
        
            cout << name3 << " " << name1 << endl;
        
    
    else if ("name3" > "name1" && "name3" > "name2")
    
        cout << name3 << " ";
        if ("name1" > "name2")
        
            cout << name1 << " " << name2 << endl;
        
        else
        
            cout << name2 << " " << name1 << endl;
        
    
    else
    
        cout << "nothing happened....." << endl;
    

【问题讨论】:

你想要strcmp() 通过将name1 放在引号中,您将把它变成一个字面量词,而不是将它用作程序变量。 如果我的名字刚好超过 9 个字符怎么办? 您正在编写 C++ 代码,并且正在使用 I/O 流。那你为什么不使用std::string?这将为您处理比较问题,并防止出现名为 Giovanetta 的人的问题。 【参考方案1】:

在 c++ 中,不能使用 > 和 documentation,末尾有一个完整的示例。

【讨论】:

以上是关于按字母顺序显示用户的输入名称的主要内容,如果未能解决你的问题,请参考以下文章

Python 如何对输出的词频结果按字母顺序排序(NLTK)

2.通过键盘输入一个小写字母,找出对应的前导字母和后续字母,再按顺序显示这三个字母。

使用 SQL 按字母顺序重新排列字符串中的字符 [关闭]

按字母顺序排列的名称和描述列表

c++ 按字母顺序排序名称

MySQL按X排序然后分组按Y然后按字母顺序排列