2011-04-01 3 views
0

Voici mon code ... Quelle serait la meilleure façon de trier les noms par ordre alphabétique?Tri alphabétique

#include <iostream> 
#include <iomanip> 
#include <string> 
using namespace std; 

int main() 
{ 
    int StudentNum; 

    cout << "How many student are in the class?\n"; 
    cin >> StudentNum; 

    string sname[25]; 
    if (StudentNum < 1 || StudentNum > 25) 
    { 
    cout << "Please enter a number between 1-25 and try again\n"; 
    return 0; 
    } 

    for (int i = 1; i <= StudentNum; i++) 
    { 
     cout << "Please enter the name of student #" << i << endl; 
     cin >> sname[i];   
    } 
    for (int output = 0; output <=StudentNum; output++) 
    { 
    cout << sname[output] << endl; 
    } 
    system ("pause"); 
    return 0; 
} 
+2

tableaux en C++ sont numérotés de '' 0' à N-1'. Votre premier 'for' devrait dire:' for (int i = 0; i Pablo

Répondre

4

La méthode standard consiste à utiliser std::sort:

#include <algorithm> 

// ... 

std::sort(sname, sname + StudentNum); 

std::sort utilise operator< par défaut, ce qui ne fait une comparaison alphabétique des chaînes.

EDIT: En effet, il devrait être StudentNum au lieu de 25.

+2

qui devrait être 'sname + StudentNum' – qwertymk

+0

Je fais ça et mes tableaux ne sont pas apparaître dans la sortie. –

Questions connexes