Iarlen 0 Denunciar post Postado Maio 31, 2013 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*)' Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Junho 3, 2013 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! Compartilhar este post Link para o post Compartilhar em outros sites
MatheusSilva 0 Denunciar post Postado Junho 3, 2013 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; agenda.c[i+1].nome = temp } veja se funciona para o seu sistema, porque utilizei esse mesmo conceito e funcionou com o meu. Boa sorte! Compartilhar este post Link para o post Compartilhar em outros sites