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

compter des mots en C



  1. #1
    sdow

    compter des mots en C


    ------

    salut

    Dans mon szBuffer je un message . comment affiche le resultat sur ecran . le resultat est dans int j . Qaund je affiche il me sort des symboles et pas des numero .

    void ComptMots (char *szBuffer)
    {
    int j=0;
    int i=0;
    unsigned char nNombre;
    do
    {
    while (szBuffer[i] == ' ')
    {
    i++;
    }
    j++;
    while (szBuffer[i] != ' ' && szBuffer[i] != '\0')
    i++;
    }while(szBuffer[i] != '\0');
    atoi(j,nNombre);


    }

    -----

  2. Publicité
  3. #2
    fderwelt

    Re : compter des mots en C

    Bonsoir,

    J'avoue ne pas avoir regardé en détail ton programme, mais il me semble que le problème réside a priori dans la fonction atoi, qui ne fait peut-être pas ce que tu veux. Il faut encore que je vérifie. Et comment affiches-tu la variable nNobre?

    Par ailleurs, tu connais la fonction standard strtok() dans <string.h> ?

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  4. #3
    sdow

    Re : compter des mots en C

    je affiche ma variable avec un autre fonction
    la fonction fait automatiquement un fenetre est au millieu mon message devrait etre .

    le nom de fonction la fonction est void Notice (unsigned char *mess)

    à la palace de mess on met nNombre . Qaund je met du texte il m' affiche correctement.

  5. #4
    fderwelt

    Re : compter des mots en C

    Eh bien évidemment! Si tu veux afficher une variable numérique avec ta fonction, il va interpréter cette variable comme une suite d'octets, et afficher les caractères correspondants. Il faudrait que tu fasses quelque chose du style:
    Code:
    char buffer[BUFFERSIZE] ; // BUFFERSIZE à fixer avec un #define
    sprintf (buffer, "%d", nNumber) ;
    Notice (buffer) ; // je ne connais pas le proototype de cette fonction, mais tu pourras adapter facilement
    Je pensais bien que le problème venait de là...

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  6. #5
    Gre

    Arrow Re : compter des mots en C

    Dans un premier temps il serait aimable de fournir du code indenter et lisible !!!

    Code:
    void ComptMots (char *szBuffer)
    {
        int j=0;
        int i=0;
        unsigned char nNombre;
    
        do
        {
            while (szBuffer[i] == ' ')
            {
                i++;
            }
            j++;
            while (szBuffer[i] != ' ' && szBuffer[i] != '\0')
                i++;
        }
        while (szBuffer[i] != '\0');
        atoi(j,nNombre);
    }
    C'est pas étonnant que vous fassiez des erreurs quand vous écrivez votre code comme ça.

    Le problème vient de
    1) tu ne renvois rien pas le nombre de mots et que tu ne l'affiches pas. Il est donc a priori difficile que tu puisses l'afficher en dehors de la fonction.
    2) tu utilises un unsigned char pour mémoriser le nombre de mots sous forme de caractères... mais que se passe-t-il si tu as plus de 9 mots ? Tu vas avoir une mauvaise surprise.
    3) Qu'espères tu faire avec atoi ? Cette fonction transforme un nombre écrit en ascii (donc une chaîne de caractères) en nombre en int.
    http://www.cplusplus.com/reference/c...dlib/atoi.html

    'Oilà...
    War does not decide who's right, but who's left. (Bertrand Russell)

  7. A voir en vidéo sur Futura
  8. #6
    invite79115743

    Re : compter des mots en C

    En plus atoi() n'a jamais pris deux paramètres chez moi (ca compile vraiment ce truc?!), bref faut lire les prototypes des fonctions et a quoi elles servent avant de les utiliser et de demander pourquoi ca marche pas...
    Some of those tha wear forces, are the same that burn crosses.

  9. Publicité
  10. #7
    Gre

    Re : compter des mots en C

    Citation Envoyé par DarKPhoeniX Voir le message
    En plus atoi() n'a jamais pris deux paramètres chez moi (ca compile vraiment ce truc?!), bref faut lire les prototypes des fonctions et a quoi elles servent avant de les utiliser et de demander pourquoi ca marche pas...
    C'est bien ce que j'ai dit... il y a un problème avec sa fonction atoi.

    C'est pour cela que je lui ai pointé un problème.
    S'il n'en redemande pas c'est qu'il a
    1) résolu son problème
    2) abandonné ^_^
    War does not decide who's right, but who's left. (Bertrand Russell)

  11. #8
    sdow

    Re : compter des mots en C

    merci

    J’étais un peu absent, donc je n’ai pas vu les mess.

    Là j'ai un autre problème. comment faire une fonctionne

    Qui va transformer un lette min an maj.

    ex: salut le monde == Salut Le Monde

    et l'autre fonction : inverse la phrase ex: monde le salut

  12. #9
    Gre

    Re : compter des mots en C

    Citation Envoyé par sdow Voir le message
    merci

    J’étais un peu absent, donc je n’ai pas vu les mess.

    Là j'ai un autre problème. comment faire une fonctionne

    Qui va transformer un lette min an maj.

    ex: salut le monde == Salut Le Monde

    et l'autre fonction : inverse la phrase ex: monde le salut
    Fonction :
    Code:
    #include <ctype.h>
    char toupper(char);
    transforme un caractère en majuscule.
    (documentation

    Tu l'appliques à toute ta phrase et tu la compares à un phrase en majuscule.
    Tu sais que pour comparer deux chaînes de caractères on n'utilise pas == mais strcmp ??
    Mais tant qu'à faire ça, tu es bon pour faire une fonction qui refait ce que fait strcmp mais en testant mettant des majuscules. Ça sera plus efficace...

    Menfinbon commence par faire un truc qui marche et qui soit bien fait. Après tu l'optimiseras.
    War does not decide who's right, but who's left. (Bertrand Russell)

  13. #10
    invite79115743

    Re : compter des mots en C

    Pour convertir en majuscule toupper() de ctype.h (arf on a posté avant moi

    Pour changer l'ordre des mots commence par lire la documentation des fonctions de string.h, ca peut se faire rapidement avec des fonctions comme malloc, strncpy, strlen ...
    Some of those tha wear forces, are the same that burn crosses.

  14. #11
    Gre

    Re : compter des mots en C

    Citation Envoyé par sdow Voir le message
    merci

    J’étais un peu absent, donc je n’ai pas vu les mess.

    Là j'ai un autre problème. comment faire une fonctionne

    Qui va transformer un lette min an maj.

    ex: salut le monde == Salut Le Monde

    et l'autre fonction : inverse la phrase ex: monde le salut
    À mon avis tu ferais mieux de demander à ton prof de l'aide.

    As tu essayé quelque chose pour inverser la phrase ?
    War does not decide who's right, but who's left. (Bertrand Russell)

Discussions similaires

  1. Bloquer des pages selon des mots clefs
    Par vampyer972 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 14/11/2006, 01h47
  2. il manque des mots
    Par alex_@ dans le forum Logiciel - Software - Open Source
    Réponses: 12
    Dernier message: 10/10/2005, 08h55
  3. compter des cellules/marquer de l'ADN/transgenese
    Par jeremims dans le forum Biologie
    Réponses: 21
    Dernier message: 21/05/2005, 17h27
  4. le sens des mots
    Par illouca dans le forum [ARCHIVE] Philosophie
    Réponses: 0
    Dernier message: 16/12/2004, 23h28
Découvrez nos comparatifs produits sur l'informatique et les technologies.