Je veux comparer entre deux char * donc je le fais avec strcmp, regardez, en mode de débogage, les deux char * dans strcmp obtient la même valeur et toujours retour coutume 0, et il saute par-dessus la condition if() au lieu d'y entrer:#c strcmp() ne fonctionne pas comme il se doit
ici pic du débogueur: http://img405.imageshack.us/img405/5218/111fi.jpg
Company FindCompany(CompanyL pcompanyList, int companyIdentityDigit)
{
Company companyFound;
char *psearchWord;
psearchWord = (char*)malloc(10*sizeof(char));
switch(companyIdentityDigit) {
case 0:
strcpy(psearchWord , "Pelephone");
break;
case 2:
strcpy(psearchWord , "Cellcom");
break;
case 4:
strcpy(psearchWord , "Orange");
break;
}
while(pcompanyList->next != NULL) {
if(strcmp(pcompanyList->thisCompany->pcompany , psearchWord) == 0) {
free(psearchWord);
return pcompanyList->thisCompany;
}
pcompanyList = pcompanyList->next;
}
free(psearchWord);
return NULL;
}
pourquoi est-il ??
Avec quelles valeurs l'appelez-vous. –
Les cordes sont-elles définitivement à la fois ASCII? Êtes-vous sûr que les octets après les m dans Cellcom sont tous les deux nulls? – jtdubs
james droit ... je vais le réparer, mais ce n'est pas le problème –