Convertirn char en int

Signaler
Messages postés
25
Date d'inscription
vendredi 11 juin 2004
Statut
Membre
Dernière intervention
20 novembre 2004
-
Messages postés
298
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
9 juillet 2008
-
Bonjour!

Je dispose des variables suivante :

char Port[4];
int Port_Int;

Port="5000";

Je souhaite affecter la valeur numérique 5000 à la variable Port_Int(non pas la valeur ASCII).

En vous remerciant à l'avance, passez une bonne soirée

7 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
dans le cas ou l'affectation n'est pas possible, utilises memcpy

memcpy( Port, &Port_Int, sizeof Port );

sous entendu sizeof Port == sizeof Port_Int
Messages postés
25
Date d'inscription
vendredi 11 juin 2004
Statut
Membre
Dernière intervention
20 novembre 2004

Salut!

Merci d'avoir répondu aussi rapidement, c'est cool!

Alors j'ai utilisé ceci:

#include <memory.h>

memcpy( &Port_Int, Port, sizeof Port );

Port_Int : dest (destination)
Port : src(source)

sur la variable Port est indiquée la valeur mémoire.
sur la variable Port_Int est indiqué le valeur numérique suivante : 842563254

ça ne joue pas!

Si je comprend bien, il faut avoir la même valeur d'adresse mémoire pour les deux variables?!
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Bonsoir,

La fonction 'atoi' ne te conviens pas ???

Matt...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
matge > je pensais que tu voulais faire une copie memoire

utilises atoi comme Matt67 le suggere ou ssprintf

Port="5000";

il faudrais faire un strcpy (on peut pas affecter un tableau) et sizeof "5000" == 5 et non 4
Messages postés
25
Date d'inscription
vendredi 11 juin 2004
Statut
Membre
Dernière intervention
20 novembre 2004

Salut!

Port_Int = atoi(Port); // Port_Int vaut 0 à l'execution!

strcpy( Port_Int, Port); // ne prend pas de paramètres en int!

Sinon, comme Port est un tableau, il faut le transformer en pointeur?! du style :

char* pPort;
strncpy(Port, pPort, 7);

Merci les gars...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
non la t'y est pas du tout (oubli tout ce que tu as ecris)

quand tu declare un tableau pour contenir une chaine, ne met pas une taille ridicule

char Port[200]; /* par exemple */

si Port contient la chaine "5000" et que tu veux mettre cette valeur numerique dans un entier

Port_Int = atoi(Port);

ou

sscanf( Port, "%d", &Port_Int ); /* te permet de controller si il y a eu une erreur */

mais tu as surtout besoin d'apprendre les bases parce que la tu nages
Messages postés
298
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
9 juillet 2008
1
voila la reponse à ta question :
#include <stdlib.h>
...
char Port[5]="5000";
int portint;
portint = strtol(Port,NULL,10);
---------------------
ca donne le bon resultat?