Conversion de char* en int, oui mais...
Babloutre
Messages postés
3
Statut
Membre
-
Babloutre Messages postés 3 Statut Membre -
Babloutre Messages postés 3 Statut Membre -
Bonjour,
Je suis face à un problème qui commence a me prendre la tête, je vous explique.
Dans mon code, je dispose de plusieurs constantes telles que cons ma_constante=0;
D'un autre coté, j'ai à disposition des variables comme char *var="ma_constante".
Pour finir, j'ai un tableau de char* nommé Table.
Ce que je voudrai, c'est à parti de la variable var décrite plus haut, afficher le contenu de Table[ma_constante], soit Table[0].
J'ai essayé des choses du genre :
...mais sans succès.
Pouvez vous m'aider ?
Merci
Je suis face à un problème qui commence a me prendre la tête, je vous explique.
Dans mon code, je dispose de plusieurs constantes telles que cons ma_constante=0;
D'un autre coté, j'ai à disposition des variables comme char *var="ma_constante".
Pour finir, j'ai un tableau de char* nommé Table.
Ce que je voudrai, c'est à parti de la variable var décrite plus haut, afficher le contenu de Table[ma_constante], soit Table[0].
J'ai essayé des choses du genre :
char *var="ma_constante";
int num;
sscanf(var, "%d", &num);
printf("%s",Table[num]);
...mais sans succès.
Pouvez vous m'aider ?
Merci
A voir également:
- Conversion de char* en int, oui mais...
- Excel compter le nombre de oui ✓ - Forum Excel
- Conversion mb en mo ✓ - Forum Bureautique
- Conversion bytes en mo ✓ - Forum Programmation
- 2k€ conversion - Forum Logiciels
- Convertir en k€ ✓ - Forum Audio
2 réponses
1. char *var="ma_constante"; ==> var est une chaîne de char mais en zone "code" (pour faire simple, c'est une constante.
Tu devrais faire plutôt faire :
char *var;
var = malloc( 20 );
strcpy( var,"ma_constante");
Maintenant var est une chaîne de caractère, placée en zone "données" que tu peux modifier à ta guise (attention ici tu n'as aloué que 20 octets, gare aux débordements !!!
2. pour pouvoir écrire "printf("%s",Table[num]);", il faut que Table[num] soit une chaîne de characrtères et que num soit compris entre 0 et la valeur dimensionnant ta table Table. Si c'est ce que tu veux, il eut fallu déclarer Table de la façon suivante :
char *Table[10] ;
Table[0] = malloc(10);
Table[1] = malloc(10);
Table[2] = malloc(10);
...
Table[n-1] = malloc(10);
Table[n] = malloc(10);
Compris ?
Tu devrais faire plutôt faire :
char *var;
var = malloc( 20 );
strcpy( var,"ma_constante");
Maintenant var est une chaîne de caractère, placée en zone "données" que tu peux modifier à ta guise (attention ici tu n'as aloué que 20 octets, gare aux débordements !!!
2. pour pouvoir écrire "printf("%s",Table[num]);", il faut que Table[num] soit une chaîne de characrtères et que num soit compris entre 0 et la valeur dimensionnant ta table Table. Si c'est ce que tu veux, il eut fallu déclarer Table de la façon suivante :
char *Table[10] ;
Table[0] = malloc(10);
Table[1] = malloc(10);
Table[2] = malloc(10);
...
Table[n-1] = malloc(10);
Table[n] = malloc(10);
Compris ?