ATOI: d'un tableau de char vers un entier
sophie34
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
la fonction atoi en C est censée transformer un string (tableau de char) en un entier.
mais mon code me retourne la valeur 0 quelque soit le string.
pourquoi?
merci:)
la fonction atoi en C est censée transformer un string (tableau de char) en un entier.
mais mon code me retourne la valeur 0 quelque soit le string.
pourquoi?
using namespace std;
#include <iostream>
int main(){
char mes[]="abcd";
int a;
a=atoi(mes);
cout<<a;
}
merci:)
1 réponse
Salut,
La fonction atoi, tu l'as bien compris convertit une chaîne de caractère en un int. Mais tu demandes d'afficher le nombre représentant "abcd", nombre qui n'existe pas en base décimal. D'où le 0.
Si tu veux travailler en hexa, et même d'une manière plus général, utilise plutôt la fonction strtol.
Et enfin, évite le mélange du C et du C++.
En C++, on évite d'utiliser au maximum le tableau de char alors qu'on a la classe string qui est beaucoup mieux.
Et dans ce cas-là, en C++ pour convertir un string en entier : https://cpp.developpez.com/faq/cpp/?page=Les-chaines-de-caracteres-std-string#STRINGS_strtonum
Cdlt
La fonction atoi, tu l'as bien compris convertit une chaîne de caractère en un int. Mais tu demandes d'afficher le nombre représentant "abcd", nombre qui n'existe pas en base décimal. D'où le 0.
Si tu veux travailler en hexa, et même d'une manière plus général, utilise plutôt la fonction strtol.
Et enfin, évite le mélange du C et du C++.
En C++, on évite d'utiliser au maximum le tableau de char alors qu'on a la classe string qui est beaucoup mieux.
Et dans ce cas-là, en C++ pour convertir un string en entier : https://cpp.developpez.com/faq/cpp/?page=Les-chaines-de-caracteres-std-string#STRINGS_strtonum
Cdlt