Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Langage C



  1. #1
    kirua31

    Langage C


    ------

    Bonjour,

    Voilà, je dois écrire un programme en langage C, mais étant donné que je ne suis pas trés bon, j'ai quelques difficultées.
    Enoncé:
    Ecrire une fonction ayant pour argument une chaine de caracteres formée de chiffres et retournant l'entier ainsi représenté.
    Au cas où l'entrée serait erronée prévoir une info sur la validité du calcul.

    Pour l'instant voilà ce que j'ai fait :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int chaineCaracteres(int a, int b, int c)
    {
    char chaine[]="abc";
    printf("%s\n",chaine);
    }

    int main()
    {
    int a, b, c;

    printf("1er chiffre ...");
    scanf("%d",&a);
    printf("2eme chiffre...");
    scanf("%d",&b);
    printf("3eme chiffre...");
    scanf("%d",&c);
    }

    Mes problémes :
    --> je ne sais pas trop comment se servir des fonctions ... donc il y a sûrement une erreur là.
    -->je voulais me servir de la fonction Atoi, mais à part qu'elle se trouve dans <stdlib.h>, je ne sais pas trop comment la manier.

    Bref au final, je crois que je n'ai pas fait grand chose ... mais j'avour être un peu perdu !

    Merci pour votre aide !!!

    -----

  2. Publicité
  3. #2
    GrisBleu

    Re : Langage C

    Salut

    Si j'ai compris une de tes fonctions doit prendre un char* (par exemple) en entree
    Si tu as le droit a string.h (c'est du bonheur), tu as tout ce qu il faut.
    Le pseudo code est

    int stringToNumber (char[] str){
    nombre=0
    Tester si str est null /*str est un pointeur: WARNING*/
    Parcourir la chaine{
    Tester si le char est un entier
    Sinon, pour chaque charactere, modifier nombre
    }
    }

    Dans string.h il y a tout ce qu il faut

  4. #3
    kirua31

    Re : Langage C

    Finalement, la fonction stringToNumber, ce n'est rien d'autre que atoi non ?! Il me semble que c'est ce que fait la fonction atoi ... enfin toujours si j'ai bien compris.

    Je vais essayer de faire avec ce que vous me dites. Par contre c'est à inclure dans ce que j'ai déjà fait ?! ou non c'est autre chose de totalement différent ?

    Merci de votre aide.

  5. #4
    kirua31

    Re : Langage C

    Aussi, est-ce que quelqu'un pourrait m'expliquer en deux trois lignes, comment se servir de la fonction atoi ? Parce que je n'arrive pas à trouver d'explication correspondant à mon probléme ...

  6. A voir en vidéo sur Futura
  7. #5
    SuperTux

    Re : Langage C

    atoi(), rien de plus simple, tu lui passes un pointeur vers une chaine en parametre et elle retourne le int correspondant.

  8. #6
    kirua31

    Re : Langage C

    D'accord, mais comment je suis sensé écrire cette fonction ? ... je rappelle que ce n'est pas une matiére où je brille, malheureusement ... !

    int atoi( ... ??);

  9. Publicité
  10. #7
    SuperTux

    Re : Langage C

    Exemple :
    Code:
    char chaine[]="42";
    int nombre;
    
    nombre = atoi(chaine);

  11. #8
    kirua31

    Re : Langage C

    D'accord, merci beaucoup j'ai compris comment m'en servir alors !!!

  12. #9
    invite765732342432
    Invité

    Re : Langage C

    Citation Envoyé par kirua31 Voir le message
    D'accord, merci beaucoup j'ai compris comment m'en servir alors !!!
    Euh... a priori, le but de ton exercice n'est pas de te servir de atoi, mais de réécrire cette fonction.
    C'est d'ailleurs une méthode assez classique en informatique: commencer par réécrire toutes les fonctions usuelles pour mieux les maitriser.

  13. #10
    GrisBleu

    Re : Langage C

    Citation Envoyé par kirua31 Voir le message
    int atoi( ... ??);
    Salut


    Sais tu ce qu'est un string ? Ca me semble flottant
    EN C un string est une chaine de characteres terminee par un \0
    Par exemple H e l l o - w o r l d \0
    Une chaine est un tableau et a donc un pointeur qui lui point dessus: *char = str, puis str=(char*)malloc(...)
    Ainsi str[0]=H, str[1]=e, etc..
    Si tu sais a priori combien de lettres il y aura au plus (Nmax), tu peux toujours faire simple
    char[Nmax]=str. Tu as toujours
    Ainsi str[0]=H, str[1]=e, etc..

    Par rapport au pointeur, un tableau a un avantage: pas de malloc ni de free a faire (mais tu seras limite a Nmax). Je te conseille vraiment de t'attaquer aux pointeurs quitte a y laisser du temps, c'est l'essence du C (son point fort et a la fois son point faible)

    PS: C'est en se coltinant les chaines de characteres que je suis content de faire du Ruby

  14. #11
    kirua31

    Re : Langage C

    Lol merci de vos réponses, je savais ce qu'était un string, mon probléme ce n'est pas que je ne connait pas les fonctions ou mon cours ... ça serait plutôt de savoir comment m'en servir dans un programme. Effectivement, même si souvent je me doute de ce qu'il faut faire, c'est pour utiliser, plus précisément mettre en place mon programme que ça coince ...
    Enfin atoi, celle j'avoue, je n'avais pas compris trop ce qu'il fallait en faire, je savais ce qu'elle fesait mais pas comment l'utiliser, maintenant c'est bon ^^!
    Pour mon exercice, c'est aussi ce que je pensais, qu'il fallait réécrire la fonction atoi. J'ai testé quelques programmes, et même si ça ne marche pas, je verrais bien cet aprés-midi la correction !

    Merci encore !

  15. #12
    juice747

    Re : Langage C

    Bonjour,
    j'ai le meme exercice de langage C à faire, mais on ne doit pas utiliser atoi, il faut en effet la réécrire mais je n'ai pas réussi à vous suivre dans ce que vous dites au dessus.
    est ce que quelqu'un pourrait reprendre glaobalement la réponse l'exercice ??
    Merci d'avance.

    Juice747

  16. Publicité

Discussions similaires

  1. langage
    Par synthia36 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 07/02/2008, 18h00
  2. Langage C
    Par frue20 dans le forum Logiciel - Software - Open Source
    Réponses: 23
    Dernier message: 05/04/2007, 00h57
  3. Langage C
    Par lui dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 14/02/2007, 19h47
  4. langage c
    Par yannicklepaleo dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 31/08/2006, 21h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.