Problème avec le type char

Fermé
amine2733 Messages postés 3 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 17 janvier 2013 - 17 janv. 2013 à 15:14
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 17 janv. 2013 à 17:19
le problème que j'ai est le suivant :

je veux lire une chaine de caractère contenant des nombre et des opérateur par exemple:

/+432 donc j'ai déclarer le type char a[100] et sa marche bien

le problème c'est quand je veux lire un nombre de deux chiffre par exemple 10

exemple /+1032

la si je lit caractère par caractère donc je vais lire le 1 après 0 ; comment je peu savoir si l'utilisateur a entrer 10 ou 1 après 0

est ce que il ya une methode permet de stocker ce genre des caractère en une place mémoire 10 en une seule place mémoire

et merci

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
17 janv. 2013 à 15:32
10 n'est pas un caractère, c'est un entier, si tu veux stocker des entiers tu ne peux pas utiliser un tableau char[].

Je te propose par exemple d'avoir un int[], où chaque case correspond à un nombre si celui-ci est positif, ou un opérateur si celui-ci est négatif.
On pourrait par exemple avoir

-1 : +
-2 : -
-3 : *
-4 : /

si /+1032 correspond à (10+3)/2 ça donnerait {-4,-1,10,3,2}
1
amine2733 Messages postés 3 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 17 janvier 2013
17 janv. 2013 à 16:32
mais le programme est distiné a un utilisateur imaginer si c'est une grande expression donc sa va lui prendre du temp pour convertir / en -4 et + en -1 etc..

ya pas une solution ou la conversion se met automatique

l'utilisateur fait rentrer /+1032 alors après la saisie on vas vérifié et convertir non??
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
17 janv. 2013 à 17:19
Si tu tapes "/+1032" ça ne veut rien dire, il faudrait que l'utilisateur entre au minimum des espaces, pour distinguer les nombres ce qui donnerait "/ + 10 3 2". Mais ce n'est pas à l'utilisateur de faire la conversion en -4, -1, etc. pour remplir ton int[], ça c'est le boulot du programme (et par extension du programmeur).
0