Rechercher : dans
Par :

Boucle switch case en langage c (PIC C)

Dernière réponse le 25 avr 2009 à 14:29:19 amiii, le 25 avr 2009 à 12:34:09 
 Signaler ce message aux modérateurs

Bonjour,
est ce que je peux ecrire en c:
char var[];
switch(var){ case "chaine de caractère1": instruction1;
case "caine de caractère2": instruction2;
;}
j'ai essayé de le faire avec le PIC C mais ca ne marche qu'avec des valeurs numériques.quelqun a-t-il une solution.
merci d'avance.

Configuration: Linux
Firefox 1.0.1

Meilleures réponses pour « boucle switch case en langage c (PIC C) » dans :
Langage C - Les types de données Voir Les types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Langage C++ - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...

1

Alternate, le 25 avr 2009 à 12:45:59

ça fait longtemps que j'ai pas toucher au C mais il doit y avoir un ";" en trop juste devant l'accolade de fin
et je crois qu'il faut mettre au moins un break à la fin, on peut faire en sorte de varier les tests mais il en faut au moins un à la fin

char var[];
switch(var){
	case "chaine de caractère1":
		instruction1;
		break;
	case "caine de caractère2":
		instruction2;
		break;
}

Répondre à Alternate

2

 loupius, le 25 avr 2009 à 14:29:19

Effectivement en C, le 'switch' ne se fait que sur des valeurs numériques.
Le break n'est pas obligatoire dans un 'switch'. Par contre si tu n'en mets pas entre 2 'case' et s'il exécute le premier, il exécutera le second et ainsi de suite jusqu'à trouver un 'break' ou la fin du 'switch' (contrairement au 'select case ... case' de Visual Basic).
La solution est donc de faire des: if (strcmp (chn1, chn2)).
Bon courage.

Répondre à loupius