Conversion de chaine

Résolu
viktorfrankestein Messages postés 13 Statut Membre -  
viktorfrankestein Messages postés 13 Statut Membre -
Bonjour,
s'il vous plait comment passer par exemple de la chaine de caractère "1253" à l'entier 1253. donc par exemple si "1253" est un tableau de caractère et on veut mettre celà dans un tableau d'entier où 1 est dans la premiere case et 2 dans la deuxiéme case ainsi de suite. merci
A voir également:

3 réponses

kharchafi Messages postés 9 Statut Membre
 
Bonsoir,

Voilà le code :

#include<stdio.h>

void main()
{
char str[]="12345";
int tab[20], i,j;

for(i=0; str[i]!='\0'; i++)
tab[i]=str[i]-'0';

for(j=0; j<i; j++)
printf("%d\t", tab[j]);
}
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Il n'y a pas une fonction du genre atoi ?

ça retourne un entier, mais ça se fait aussi (avec un peu de math)
0
fiddy Messages postés 11653 Statut Contributeur 1 847 > NHenry Messages postés 15479 Statut Modérateur
 
Il y a strtol(). atoi() est obsolète.
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Le bon prototype est : int main(void).
Et il ne faut pas oublier : return 0;
Il ne faut pas non plus oublier de mettre un petit '\n' avant le return 0; final pour forcer l'affichage.
Pour plus de lisibilité, il vaudrait mieux mettre une variable pour indiquer le nombre d'éléments de tab. Vu que c'est la même que str, tu peux mettre simplement : sizeof str.
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Bonjour,

Il y a la fonction strtol().
Je te laisse regarder le manuel. Si tu as des questions, n'hésite pas.

Cdlt,
0
kharchafi
 
Bonsoir,
M. viktorfrankestein ne demande pas de convertir une chaine en int ou long mais chaque caractère en entier puis le stocker dans un élément du tableau.
0
viktorfrankestein Messages postés 13 Statut Membre
 
ok merci kharchafi ta réponse me convient parfaitement. merci
0