Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia.
Estou desenvolvendo uma agenda e gostaria de fazer uma ordenação alfabética usando string.
if(strcoll(agenda.c[i].nome,agenda.c[j].nome) > 0){
strcpy(c.nome. agenda.c[i].nome);
strcpy(agenda.c[i].nome, agenda.c[j].nome);
strcpy(agenda.c[j].nome, c.nome);
}
Só que está dando erro.
149 48 C:\Users\user\Desktop\AgendaFinal\Agenda.cpp [Error] cannot convert 'std::string {aka std::basic_string<char>}' to 'const char' for argument '1' to 'int strcoll(const char, const char*)'
Ja que esta utilizando structs, pode fazer da seguinte maneira:
struct agenda temp;
if(strcmp(agenda.c[i].nome,agenda.c[i+1].nome) < 0){
temp = agenda.c[i].nome;
agenda.c[i].nome = agenda.c[i+1].nome;veja se funciona para o seu sistema, porque utilizei esse mesmo conceito e funcionou com o meu.
Boa sorte!
Você não pode trabalhar com o objeto std::string do C++ e utilizar funções de manipulação de string do C.
Apesar do nome ser igual são coisas completamente diferentes.
Sugiro dar uma estudada nesta documentação:
http://www.cplusplus.com/reference/string/string/
Espero ter ajudado, FLW!