Comparaison de chaine [Résolu]

Signaler
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016
-
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016
-
Bonjour,



je cherche à comparer deux chaines de caractères entre elles mais ca découne :





Ma Classe :

private:

String* Type;

String* NomPers;

String* PrenPers;

int Anciennete;

int SalaireBase;





Ma Fonction Remplit_Type :

void C_Salarie::Remplit_Type(String* VType)

{

this->Type = VType;

}







Dans mon Form Load :

MonSalarie->Remplit_Type("Ouvrier");







puis dans une autre fonction le PROBLEME :



float C_Salarie::CalculSalaireTotal(int VSalaireBase)

{



if(this->Type = = "Ouvrier")

{

return (VSalaireBase * 0,35);

}

else

{

return (VSalaireBase * 2);

}







Il rentre toujours dans le cas du ELSE malgré que le contenu de mes chaines soient identiques...

j'ai tester:



if(this->Type = = this->Type) et là heureusement ca marche !




Th'x
Cyberice

3 réponses

Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016

C'est bon je viens de trouver :

if(System::String::Compare(Convert::ToString(this->Type),"Ouvrier") = = 0)





Merci quand même

Cyberice
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Bé normalement une chaine se compare pas avec le ==
Mais comme tu utilises des types spéciaux ( String ) je ne sais pas trop...
Tu devrais essayer
strcmp( chaine1, chaine2 )
renvoie 0 si identique
ou pas 0 si différente ;)
donc if( strcmp(...->Type, "Ouvrier") == 0 )
{
//code
}
strcmp( ) << include dans <string.h>


void Aurevoir( void ); //Bonne journée
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016

Hummm vi mais le prob c'est que je travaille avec des String* dc la
methode StrCmp() ne passe pas car cpp ne peut pas convertir de string*
en Char[]



donc j'ai fait :



if(System::String::Compare(Convert::ToString(this->Type),"Ouvrier"))



mais j'atteris toujours ds le ELSE.. donc meme probleme... D'autre idées ?

Cyberice