Conversion de caractère en entier

Fermé
kait93 Messages postés 18 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 26 novembre 2012 - 23 nov. 2012 à 12:37
kait93 Messages postés 18 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 26 novembre 2012 - 23 nov. 2012 à 22:30
Bonjour,



je voudrai convertir un type char en int j'ai essayé cette fonction mais elle veut pas marcher
for(i=0;i<4;i++)
{
code[i]=(char)(rand()%4+'0');
copie[i]= atoi(code[i]);
}
merci
A voir également:

3 réponses

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
23 nov. 2012 à 14:12
à la place de
copie[i]= atoi(code[i]);

essaie
copie[i] = c - '0';

Je ne suis pas un spécialiste d'Objective-C .. donc peut-être pas bon
0
kait93 Messages postés 18 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 26 novembre 2012
23 nov. 2012 à 14:28
dac merci comme même
0
kait93 Messages postés 18 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 26 novembre 2012
23 nov. 2012 à 14:30
mais c'est quoi le c que vous avez déclaré
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
23 nov. 2012 à 15:42
oups .. c'est une erreur.
il faut remplacer la variable 'c' par la variable faisant partie de ton tableau:
copie[i] = copie[i] - '0';
de cette façon ta variable numérique est égale à atoi de ta variable chaîne moins le zéro
0
kait93 Messages postés 18 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 26 novembre 2012
23 nov. 2012 à 16:00
merci #include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>


int main()
{
char car[3];
int copie[10];
int i;
car[0] = 'b';
car[1] = 'r';
car[2] = 'v';
const int min=car[0],max=car[2];
srand(time( NULL ));
// Petite vérif on affiche bien A, B, C
for(i=0;i<3;i++){

printf("%d\n", car[i]=rand()%(max-min+1)+min);

}

getch();
return 0;


} j ai essayé aussi ça pour avoir une combinaison de caractere entre ces 3 caracteres mais la ça marche ps ça me donner des nombre en dehors de la table ASCII de ce que j ai déclare
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
23 nov. 2012 à 17:43
je ne comprends pas.
D'abord, tu définis : car[0] = 'b';
car[1] = 'r';
car[2] = 'v';
ensuite, dans ta boucle, tu REdéfini car[i]=rand()%(max-min+1)+min
------------------------------
Je pense que je n'ai pas compris exactement ton explication: je voudrai convertir un type char en int.
Je pensais que ton type char était un unique caractère tel que ce caractère est inclus dans la chaîne suivante: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
Tu me montre ici des lettres, tel que {b, r, v}.
Quel résultat doit-on avoir avec ces lettres convertit en 'int' .. le code en ASCII, tel que "A" vaut 65, "B" vaut 66 etc ?
Si c'est cela que tu veut, alors (exemple):
int tASC;
char test="a";
tASC=test[0];
0
kait93 Messages postés 18 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 26 novembre 2012
23 nov. 2012 à 18:05
au faite moi je veux faire le jeux mastermind ,l'ordi doit proposer une combinaison de 4couleurs et l'utilisateur doit la trouver et comme je n'ai que la fonction randum pour faire mon programme
j'ai pensé à convertir les caractère qui définit les couleur (exp v pour le vert) en chiffre pour pouvoir utiliser la fonction et si vous avez une autre idées dite la moi merci
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
23 nov. 2012 à 19:37
Ne srait-ce pas plus facile de faire une table de concordance, style:
vert = v = 1
bleu = b = 2
rouge = r = 3
jaune = j = 4
etc
Dès lors, il ne te reste plus qu'à tester ta variable.
Soit avec les valeurs {1, 2, 3, 4, etc}
Soit directement en testant le caractère char que l'utilisateur a tapé, tel que {r, v, b, j, etc}
En gros ça donnerait
ENTREE couleurUser;
SELECTION (couleurUser)
	CASE = "v"
		tata
	CASE = "b"
		tata
	CASE = "j"
		tata
	CASE = "r"
		tata
	CASE ELSE
		tata
FIN SELECTION
0