J'ai donc le problème suivant: j'ai besoin de comparer la première lettre de deux chaînes d'une structure pour voir si l'une est plus grande que l'autre. L'objectif de ceci est de mettre en œuvre dans l'algorithme de bubblesort afin que je puisse commander la structure. Jusqu'à présent, je suis venu par cette ligne:Comparer la première lettre d'une chaîne dans une structure
if (strcmp (j-> nom, j-> proximo-> name)> 0)
mais cette ligne compare le tout le contenu dans la chaînes j'ai besoin seulement de la première lettre des deux.
le code complet est ci-dessous
struct s_Especialidade{
int id;
char nome[60];
char descricao[60];
struct s_Especialidade *proximo;
};
void ordenarMedicoN(){
PESPECIALIDADE i = malloc (sizeof(Especialidade));
PESPECIALIDADE j = malloc (sizeof(Especialidade));
PESPECIALIDADE t = malloc (sizeof(Especialidade));
for(i=cabecaEspecialidade; i->proximo != NULL; i=i->proximo) {
for(j=cabecaEspecialidade; j->proximo != NULL; j=j->proximo) {
if(strcmp(j->nome[0],j->proximo->nome[0])>0) {
t = j;
j = j->proximo;
j->proximo = t;
}
}
}
main();
}
'si (j-> nom [0]> j-> proximo-> nom [0])'. –
Thx mais cela me donne un code d'erreur "main.c: 408: avertissement: passer l'argument 1 de 'strcmp' rend le pointeur de l'entier sans un cast main.c: 408: avertissement: passer l'argument 2 de 'strcmp' fait pointer d'entier sans un casting "et je ne sais pas pourquoi. –
Il n'y a pas de 'strcmp' dans mon état. Je compare les 'char's avec'> '. –