Quando eu coloco mais de um valor para ser ordenado na string ela não ordena da maneira correta . Alguém pode me ajudar? struct informacaosobreopaciente
{
char nomepaciente[100];
char nomemedico [100];
int dia,mes,ano;
char sexo[10];
};
void mostra_paciente_ordem_alfabetica(informacaosobreopaciente p[max_paciente],int conta)
{
informacaosobreopaciente a[max_paciente];
informacaosobreopaciente f;//variavel auxiliar
if(conta == 0)
cout << "não existe usuario cadastrado"<<endl;
else
{
for(int d = 0; d < conta; d++)
a[d] = p[d];
for(int b = 0; b < conta; b++)
{
for(int c = 0; c < conta; c++)
{
if(strcmp(p[b].nomepaciente , p[c].nomepaciente) > 0)
{
f = a[b];
a[b] = a[c];
a[c] = f;
}
}
}
for(int b = 0; b < conta; b++)
{
cout << "\nPaciente " << b+1;
cout << "\nNome do Paciente..: " << a[b].nomepaciente<<endl;
cout << "Nome do Medico......: " << a[b].nomemedico<<endl;
cout << "Data de Nascimento..: " << a[b].dia << "/" << p[b].mes << "/" << p[b].ano<<endl;
cout << "Sexo do pacietne....: " << a[b].sexo<<endl;
}
}
}
int main()
{
informacaosobreopaciente p[max_paciente];
int opcao;
int cont = 0;
do
{
menu(opcao);
if(opcao == 1)
cadastro(p,cont);
else if (opcao == 2)
mostra_pacientes_ordem_de_cadastro(p,cont);
else if(opcao == 3)
mostra_paciente_ordem_alfabetica(p,cont);
else if(opcao == 4)
mostra_paciente_ordem_alfabetica_decrescente(p,cont);
else if(opcao == 5)
excluirpaciente(p,cont);
else if(opcao ==6)
excluirpacientepormedico(p,cont);
}
while(opcao >=1 && opcao <= 6);
return 0;
}