Comparaison de chaines [résolu]

Comparaison de chaines [résolu] - C++ - Programmation

Marsh Posté le 03-09-2004 à 09:30:21    

Code :
  1. dll_export void _stdcall SetPatient(int iBirthdate, char * sex)
  2. {
  3.     double dBirthdate = iBirthdate;
  4.     VARIANT_BOOL * p;
  5.     if (sex == "male" )
  6.         MessageBox(NULL, "male", "SetPatient", 0);
  7.         //pITarmedInput->SetPatient(dBirthdate, enMale, p);
  8.     else if (sex == "female" )
  9.         MessageBox(NULL, "female", "SetPatient", 0);
  10.         //pITarmedInput->SetPatient(dBirthdate, enFemale, p);
  11.     else
  12.         MessageBox(NULL, "Patient sex invalid.", "SetPatient", 0);
  13. }


 

Code :
  1. dll_export void _stdcall SetPatient(int iBirthdate, char * sex)
  2. {
  3.     double dBirthdate = iBirthdate;
  4.     char buf[32];
  5.     sprintf(buf, "%s", sex);
  6.     VARIANT_BOOL * p;
  7.     if (buf == "male" )
  8.         MessageBox(NULL, "male", "SetPatient", 0);
  9.         //pITarmedInput->SetPatient(dBirthdate, enMale, p);
  10.     else if (buf == "female" )
  11.         MessageBox(NULL, "female", "SetPatient", 0);
  12.         //pITarmedInput->SetPatient(dBirthdate, enFemale, p);
  13.     else
  14.         MessageBox(NULL, "Patient sex invalid.", "SetPatient", 0);
  15. }


 
Aucun des 2 ne fonctionne, j'obtient toujours "Patient sex invalid.", alors que autant sex que buf contiennent "male".


Message édité par fatypunk le 03-09-2004 à 09:39:14
Reply

Marsh Posté le 03-09-2004 à 09:30:21   

Reply

Marsh Posté le 03-09-2004 à 09:32:43    

Le sex, c'est mâle.
 

Code :
  1. if (sex == "male" )


le C++ c'est pas du basic...

Reply

Marsh Posté le 03-09-2004 à 09:33:18    

tu peu surement utiliser des fonction de comparaison de chaine
 
comme strcmp

Reply

Marsh Posté le 03-09-2004 à 09:38:57    

_ky_ a écrit :

tu peu surement utiliser des fonction de comparaison de chaine
 
comme strcmp


 
Exact, maintenant ca marche :
 

Code :
  1. dll_export void _stdcall SetPatient(int iBirthdate, char * sex)
  2. {
  3.     double dBirthdate = iBirthdate;
  4.     VARIANT_BOOL * p;
  5.     if (strcmp(sex, "male" ) == 0)
  6.     MessageBox(NULL, "male", "SetPatient", 0);
  7.         //pITarmedInput->SetPatient(dBirthdate, enMale, p);
  8.     else if (strcmp(sex, "female" ) == 0)
  9.     MessageBox(NULL, "female", "SetPatient", 0);
  10.         //pITarmedInput->SetPatient(dBirthdate, enFemale, p);
  11.     else
  12.         MessageBox(NULL, "Patient sex invalid.", "SetPatient", 0);
  13. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed