Extraire un chiffre d'un tableau de char dans un int [C] - C - Programmation
Marsh Posté le 02-08-2012 à 10:58:44
Bonjour, je pense que la fonction "atoi" fairait l'affaire.
Citation : #include <stdlib.h> |
Marsh Posté le 02-08-2012 à 11:02:21
error: invalid conversion from 'const char' to 'const char*'
initializing argument 1 of 'int atoi(const char*)'
J'avais deja essayé cette fonction, apparement ça ne fonctionne que pour la conversion du char tout entier dans un int
Marsh Posté le 02-08-2012 à 11:05:05
brikdelay a écrit : error: invalid conversion from 'const char' to 'const char*' |
Relis la doc, tu t'es planté dans ton utilisation d'atoi, visiblement. Tu ne dois pas déréférencer le tableau que tu passes en paramètre.
Edit : My Bad. Pour ton cas, tu peux t'en sortir avec un int chiffre = test[2] - '0'; C'est pas super élégant, mais ca passera sans doute.
Edit 2 : l'autre solution serait d'extraire la sous-chaine qui t'intéresse (à coup de strstr) et d'utiliser atoi.
Marsh Posté le 02-08-2012 à 11:05:30
Pour passer l'adresse de ton tableau de char, je crois qu'il faut le préfixer d'un '&'.
Code :
|
Marsh Posté le 02-08-2012 à 11:11:44
theshockwave a écrit : |
Il a dit "nombre".
Si non, la soustraction d'une valeur relative à la table ascii est possible. En effet.
Marsh Posté le 02-08-2012 à 11:19:24
En effet, ajouter -'0' fonctionne.
C'est moche mais ça marche, merci !
Citation : Il a dit "nombre". |
ouais mais la variable s'appelle "chiffre", jsui a moitié pardonnée
Marsh Posté le 02-08-2012 à 10:50:39
Bonjour !
je me remet au C après quelques années de vide afin de résoudre les problème de Project Euler (http://projecteuler.net/)
Peut être que certain connaissent, enfin toujours est-il que j'ai besoin de convertir un nombre stocké dans un tableau de char en int, et je ne trouve pas de fonctions qui le fasse
un exemple vous parlera plus :
char test[]="123456789";
int chiffre=test[2];
printf("Le troisieme chiffre est %d,"chiffre);
(l'exemple et inutile mais illustre le principe)
Ca ne plante pas à la compilation, mais quand je lance le programme, ça ne m'affiche pas "Le troisieme chiffre est 3" mais un autre nombre qui n'a rien à voir ?
Une explication ? Une solution ?
Merci !