[C] Multi-condition dans If....

Multi-condition dans If.... [C] - C - Programmation

Marsh Posté le 17-11-2006 à 18:46:20    

plop all, :hello:
 
Voila je voudrai savoir comment compresser tout ca (si c'est possible :))

Code :
  1. if ((str[i] == 'd' || str[i] == 'i' || str[i] == 'o' ||  str[i] == 'u ))
  2. ...;


 
et recuperer un truc dans ce style :

Code :
  1. if (str[i] == 'd,o,u')
  2. ...;


 
Thx, :jap:
Sid.


---------------
@{epitech.}
Reply

Marsh Posté le 17-11-2006 à 18:46:20   

Reply

Marsh Posté le 17-11-2006 à 19:45:06    

Code :
  1. switch (str[i])
  2. {
  3.    case 'd' :
  4.    case 'i' :
  5.    case 'o' :
  6.    case 'u' : ...;
  7. }


Message édité par jesus_christ le 17-11-2006 à 19:45:12
Reply

Marsh Posté le 17-11-2006 à 19:45:37    

je sais pas si c'est mieux, mais on peut l'écrire comme ça:

Code :
  1. switch (str[i])
  2. {
  3.   case 'd': case 'o': case 'u':
  4.     /* ... */
  5. }


 
edit : grillaid [:benou_grilled]


Message édité par franceso le 17-11-2006 à 19:46:17

---------------
TriScale innov
Reply

Marsh Posté le 17-11-2006 à 19:46:17    

Reply

Marsh Posté le 17-11-2006 à 19:47:34    


j'ai même faillé être grillé sur le grilled ! (ça s'est joué à la seconde !)


---------------
TriScale innov
Reply

Marsh Posté le 17-11-2006 à 19:48:12    

j'ai déjà fait un triple grilled une fois, mais là tu t'es pas fait avoir !
j'aurais du attendre un peu plus ;)

Reply

Marsh Posté le 17-11-2006 à 19:59:47    

erfl, c'est hors-norme a l'epitech switch... autre chose ?


---------------
@{epitech.}
Reply

Marsh Posté le 17-11-2006 à 20:37:21    

sideo a écrit :

et recuperer un truc dans ce style :

Code :
  1. if (str[i] == 'd,o,u')
  2. ...;



strchr().


Message édité par Emmanuel Delahaye le 17-11-2006 à 22:16:27

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 17-11-2006 à 21:49:42    

sideo a écrit :

erfl, c'est hors-norme a l'epitech switch... autre chose ?


C'est quoi cette balgue o_O
Ils cherchent le baton pour ce faire battre ou quoi :o

Reply

Marsh Posté le 17-11-2006 à 22:17:41    

Joel F a écrit :

C'est quoi cette balgue o_O
Ils cherchent le baton pour ce faire battre ou quoi :o


C'est la pédagogie EPITECH dite "B*te et Couteau"


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 17-11-2006 à 22:17:41   

Reply

Marsh Posté le 17-11-2006 à 22:57:00    

sideo a écrit :

erfl, c'est hors-norme a l'epitech switch... autre chose ?


le switch est interdit à l'épitech ?
je bosse avec plein de gards de l'épitech, je leur demanderai... bizzare, je vois pas le pb avec switch, et c'est assez rapide en plus un switch

Reply

Marsh Posté le 18-11-2006 à 14:19:51    

c'est une histoire compliquee, ya pas de reference swirch ou je sais plus quoi...


---------------
@{epitech.}
Reply

Marsh Posté le 18-11-2006 à 18:04:44    

ben je demanderai ;)

Reply

Marsh Posté le 21-11-2006 à 14:41:09    

sideo a écrit :

c'est une histoire compliquee, ya pas de reference swirch ou je sais plus quoi...

 

[:pingouino] quand même ca parait gros na ?

Message cité 1 fois
Message édité par Joel F le 21-11-2006 à 14:41:23
Reply

Marsh Posté le 21-11-2006 à 14:49:02    

sideo a écrit :

c'est une histoire compliquee, ya pas de reference swirch ou je sais plus quoi...


 
y a pas de quoi ? [:pingouino dei]

Reply

Marsh Posté le 21-11-2006 à 16:12:58    

Joel F a écrit :

[:pingouino] quand même ca parait gros na ?


 [:benou_+1]

Reply

Marsh Posté le 21-11-2006 à 16:28:58    

j'attend la reponse de jesus_christ


---------------
@{epitech.}
Reply

Marsh Posté le 22-11-2006 à 19:45:20    

j'ai demandé et en effet à l'épitech ils ont comme consigne déviter le plus possible les switch et ne s'en servir que quand on peut pas trop faire autrement. Le if-else if-else if... est lui vraiment prohibé.
 
j'ai pas eu de réponse + précise

Reply

Marsh Posté le 22-11-2006 à 20:09:48    

Directives de qualité [:bien]

Reply

Marsh Posté le 22-11-2006 à 20:26:17    

super pratique [:pingouino]
une jolie école que voila [:vague nocturne]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-11-2006 à 21:28:51    

j'ai trouvé une autre solution.... les pointeurs sur fonctions avec structures...


---------------
@{epitech.}
Reply

Marsh Posté le 22-11-2006 à 23:13:14    

[:psywalk]


Message édité par Harkonnen le 22-11-2006 à 23:13:29

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-11-2006 à 23:23:43    

sideo a écrit :

j'ai trouvé une autre solution.... les pointeurs sur fonctions avec structures...


+1
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 22-11-2006 à 23:28:49    

tout ça pour éviter un switch ! mais ils ont quoi contre le switch à l'épitech ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-11-2006 à 23:34:20    

Harkonnen a écrit :

tout ça pour éviter un switch ! mais ils ont quoi contre le switch à l'épitech ?


 
Je parierais sur la peur que les débutants se plantent à cause du fall-through :/

Reply

Marsh Posté le 23-11-2006 à 08:42:36    

0x90 a écrit :

Je parierais sur la peur que les débutants se plantent à cause du fall-through :/


 :heink: bonjour la parano ... perso, pour donner des cours de C, la première peur c'ets que les éléves pigent pas les pointeurs.
Le fall-through  :sleep:

Reply

Marsh Posté le 23-11-2006 à 09:46:20    

sideo a écrit :

j'ai trouvé une autre solution.... les pointeurs sur fonctions avec structures...


Erf. Tant qu'a jeter de la mémoire sur le problème...
 

Code :
  1. uchar_t lut[256];
  2. memset(lut, 0, 256);
  3. lut['d'] = 1;
  4. lut['o'] = 1;
  5. lut['u'] = 1;
  6. ...
  7. if (lut[str[i]])
  8. ...


Reply

Marsh Posté le 23-11-2006 à 10:12:24    

mouai pourquoi pas... là je perds des lignes (la norme n'en autorise que 25 par fonction...) tandis qu'avec ma structure je fais ce que je veux...


---------------
@{epitech.}
Reply

Marsh Posté le 23-11-2006 à 10:29:46    

sideo a écrit :

mouai pourquoi pas... là je perds des lignes...


Mais moi aussi, je fais ce que je veux.

Code :
  1. const uchar_t lut[256] = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
  2. ...
  3. if (lut[str[i]] & 1)
  4. ...


 
Mieux?

Reply

Marsh Posté le 23-11-2006 à 10:37:31    

La norme Epitech interdit le swicth ? Lolley [:pingouino]
A l'Epita ils avaient laissé tomber ça depuis un moment...  
 
http://www.lrde.epita.fr/~raph/doc [...] index.html

Reply

Marsh Posté le 23-11-2006 à 10:44:57    

http://img225.imageshack.us/img225/3882/sanstitre1vh0.jpg


---------------
@{epitech.}
Reply

Marsh Posté le 23-11-2006 à 10:51:37    

Voui, je contredis pas, mais je m'interroge sur le fait que ça soit resté comme ça depuis le temps. Effet Sadirac (coder sans bug, c'est pas donné à tout le monde, ça doit être parce qu'il utilise pas de switch :o) ?
 
Hum, la justification avait été donnée ? Parce que depuis les travaux des Raphael Poss chez nous, y'a des justifications dans la norme sur le pourquoi du comment. Il m'avait réconcilié avec la norme d'ailleurs. Sacré mec.

Reply

Marsh Posté le 23-11-2006 à 11:02:10    

Toutafaÿ. Il faut proteger les faibles d'esprit des abominations des Duff's device et autres computed goto.

Reply

Marsh Posté le 23-11-2006 à 11:47:01    

#define canard sw ## itch
[:cupra]

Reply

Marsh Posté le 23-11-2006 à 11:49:02    

0x90 a écrit :

#define canard sw ## itch
[:cupra]


 
Je crois que les moulinettes de vérification de code passent après le préprocesseur [:petrus75]
Et ce genre de tricks valait une note négative à son auteur [:azylum]

Reply

Marsh Posté le 23-11-2006 à 13:51:44    

Chaos Intestinal a écrit :

Je crois que les moulinettes de vérification de code passent après le préprocesseur [:petrus75]


Code :
  1. int tralalala(const char c) {
  2. char cmd[] = "./gni ?";
  3. FILE *o = popen("gcc -x c -o gni -", "wb" );
  4. fprintf(o,"int main(int argc, char *argv[]) { s" );
  5. fprintf(o,"witch (argv[1][0]) { case 'o': case 'u': case 'd': return 1; default: return 0; }; }\n" );
  6. fclose(o);
  7. cmd[6] = c;
  8. return system(cmd);
  9. }


Reply

Marsh Posté le 24-11-2006 à 22:30:46    

Chaos Intestinal a écrit :

Je crois que les moulinettes de vérification de code passent après le préprocesseur [:petrus75]
Et ce genre de tricks valait une note négative à son auteur [:azylum]


ouais, -42 pour les tricheurs.
Un autre monde l'épitech qd même...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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