begin process at 2012 05 30 04:47:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Switch texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Switch texte

jeudi 12 février 2004 à 21:10:33 | Switch texte

lastpixl

Est-il possible de faire un switch sur du texte ? Mon compilateur me fait une erreur à chaque fois que j'essaie avec une chaine.

ca marche avec un char, pas avec un char[x] ni un char*...

Donc je suis obligé de faire une succession de if else if else if... ?

+++
Lastpix'l
jeudi 12 février 2004 à 21:20:55 | Re : Switch texte

vecchio56

Administrateur CodeS-SourceS
je pense que tu peux faire avec un char* si tu fais un transtypage vers int, mais ce n'est pas sur que tu auras le résultat souhaité, car si tu veux comparer des char* (leur contenu), il faut utiliser strcmp. SI c'est ca que tu veux faire, tu devra faire une succession de if avec des strcmp
jeudi 12 février 2004 à 21:24:27 | Re : Switch texte

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Tu ne peux pas le faire sur une chaine entière mais avec un caractère.

Si tu as un char *

tu peux faire :

switch( tolower( *szbuff[0] ) )

Pour le faire sur une chaine entiere tu peux faire :

int c;
while ( c = *szbuff++ ) {
switch ( c )


@+
Arnotic
Admin CS, MVP Visual C++
jeudi 12 février 2004 à 21:41:29 | Re : Switch texte

vecchio56

Administrateur CodeS-SourceS
*szbuff[0]: moi je dirais plutot *szbuff ou szbuff[0], non?
jeudi 12 février 2004 à 21:42:11 | Re : Switch texte

JCDjcd

Si ton texte a comparer est static (il ne change pas), alors tu fais un tableau de chaine de characteres. Apres tu fais une boucle.

Si tu en as beaucoup a tester et que ton programme deviens lent, alors regarde :

=> http://www.cppfrance.com/code.aspx?ID=11113
jeudi 12 février 2004 à 21:48:35 | Re : Switch texte

Arnotic

Administrateur CodeS-SourceS
Bonjour,

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_pluslang_the_c.2b2b_.switch_statement.asp

@+
Arnotic
Admin CS, MVP Visual C++
jeudi 12 février 2004 à 21:53:35 | Re : Switch texte

garslouche

Ouh la... vous croyez pas que vous allez un peu loin là ???

D'abord rappel de MSDN :
Specifies an int, char, enum type, or an identifier that resolves to one of these types.

En clair switch ça ne marche qu'avec les entiers (ou eventuellement les caractères puisque ce sont des entiers) mais pas avec char*

Le mieux c'est simplement d'utiliser if et elseif !!! Et pour comparer les chaines il suffit d'utiliser strcmp

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
jeudi 12 février 2004 à 21:56:31 | Re : Switch texte

vecchio56

Administrateur CodeS-SourceS
oui mais un char* c'est aussi un entier puisque c'est une adresse, mais ca n'a aucun interet de comparer des adresses pour ca
Arnotic, ton lien n'explique pas ton *szbuff[0]
jeudi 12 février 2004 à 22:55:14 | Re : Switch texte

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Effectivement nous pouvez comparer des caractères puisqu'ils sont eux même un nombre donc un int.

Si tu veux comparer les chaines ils existes des fonctions comme strcmp() ou bien strstr() qui permet de savoir si une chaine contient une autre chaine.

Concerant le *szbuff[0] fait l'experience de se que sa retourne.

@+
Arnotic
Admin CS, MVP Visual C++
vendredi 13 février 2004 à 18:30:54 | Re : Switch texte

vecchio56

Administrateur CodeS-SourceS
ca retourne ca: error C2100: indirection non conforme

1 2

Cette discussion est classée dans : texte, char, switch


Répondre à ce message

Sujets en rapport avec ce message

char tab[]=a; [ par zelze ] Voila mon probleme:je connais char tab[]="ton texte"; mais se que je veux faire c'est a la place de "ton texte" mettre une variable.j'ai essaié plusie Switch et char [ par Stoomm ] Bonjour,Si j'ai :char test[10];strcpy (test, "monchar ";Si je souhaite faire un switch : Je fais comment ???switch (test){...}Il aime pas ! Quelqu'un Petit problem avec switch [ par Darkneon ] Salut, Mon but est de faire bouger le curseur a l'ecran avec les fleches et d'afficher une lettre a cette position.J'ai le codde suivant.#include &l switch case et gets [ par fab30 ] Bonjour, je travaille avec Dev c++ et lorsque que fait un prog contenant un gets dans un switch case ou dans une fonction appelée depuis un switch cas Programme en C [ par tweeti08 ] Voila mon problème, je débute dans le C et j'ai commencer un programme permettant de crypter par les carctère alphabétique mais le hic c ke je sui pa mettre un texte dans une textBox [ par typhoun ] Ca ne doit pas être très compliqué mais je ne vois pas comment faire pour mettre un texte dans une textBox et pour qu'il s'affiche correctement:char* Fstream [ par tobratus ] Bonjour tout le monde, Voici en substance le problème. Je lis un fichier texte avec certaines données binaires en mode texte. La lecture se fait à l Problème avec taille chaine de caractères variable [ par graphtyrael ] Bonjour à tous !Je cherche à créer une chaine de caractère de taille variable qui s'agrandit au fur et à mesure que je rentre des caractères. J'ai don conversion char to TBint32 [ par gab55 ] Bonjour a tous je suis débutant en c++ et j'utilise une fonction qui lit des données dans un fichier texte mon probleme est que les données contenues LPCVOID - Modifier le contenu [ par noobs ] Salut! C'est mon premier post Bon ma question est la suivante : J'ai une fonction write_to_file(LPCVOID texte) qui se charge d'ecrire une chain


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales