Problème test if() - C - Programmation
Marsh Posté le 13-10-2010 à 07:53:40
Et ben ça s'appelle coder un interpréteur.
Sinon tu convertis tes chaînes avec strtol / sscanf et après tu compares tes entiers.
Marsh Posté le 13-10-2010 à 12:02:00
oui mais si dans mon if je veux mettre
char* maCh1 = "toto"
char* maCh2 = "tata"
char* monTest = "strcomp(maCh1,maCh2)==0"
comment je fais pour faire if(monTest) ??
Marsh Posté le 16-10-2010 à 07:48:55
monTest doit être un pointeur de fonction qui pointe vers une fonction montest. Ca c'est si on connait à l'avance toutes les fonctions test possibles, que tu écriras toi-même.
Si on ne les connait pas et que ça peut être n'importe quoi, par exemple la possibilité offerte à l'utilisateur d'écrire lui-même n'importe quel test, il faut écrire un interpréteur ou plus simplement en intégrer un existant (comme Lua par exemple). Offrir la possibilité à l'utilisateur d'écrire lui-même son code est une extension très puissante d'un programme qui est presque toujours payante, mais je suppose que tu en es pas là.
Marsh Posté le 16-10-2010 à 09:48:21
Il te suffit d'attribuer le résultat du test à ta variable.
Code :
|
Marsh Posté le 17-10-2010 à 00:42:44
M Orthographe a écrit : ... |
Au lieu de concaténer les test à effectuer, est-ce que tu peux concaténer leurs résultats ?
si A , resulta = "le test à faire" sinon resulta=1
si B , resultb = "le test à faire" sinon resultb=1
si C , resultc = "le test à faire" sinon resultc=1
et enfin : if (resulta && resultb && resultc) ...
Marsh Posté le 13-10-2010 à 01:26:45
Bonjour,
J'ai un petit problème en C. Dans une fonction de recherche sur un liste chainée, je passe 4 paramètres.
La liste chaine et trois indicateurs.
Si les indicateurs (notons-les A, B et C) sont de valeur 1 alors une condition de test supplémentaire doit être exécutée.
Il y a donc 2^3 soit 8 tests différents.
J'aimerais faire un test différent pour les 8 entrées mais j'aimerais synthétiser comme ceci
Si A, testA = "xxx" sinon testA = ""
Si B, testB = "yyy" sinon testB = ""
Si C, testC = "zzz" sinon testC = ""
et apres faire if( testA && testB && testC)
en gros est-ce que je peux mettre le contenu du test dans un string (tableau de char) et concatener à la fin toutes ces chaines pour obtenir mon test final ? ou suis-je obligé de faire 8 tests différents?
J'espère que c'est clair...
Un petit exemple ....
et après faire un truc comme :
Merci par avance