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

3 réponses

  1. kharchafi Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      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
      1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Il y a strtol(). atoi() est obsolète.
        0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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
    1. 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
  3. viktorfrankestein Messages postés 13 Statut Membre
     
    ok merci kharchafi ta réponse me convient parfaitement. merci
    0