🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15382

Re: memcpy et char

#15382
From: Alain CROS
Date: Sun, 25 Sep 2005 18:45
60 lines
2740 bytes
Bonjour.

"Harpo" <trashcan@hotmail.com> a �crit dans le message de news: 4335b780$0$5400$8fcfb975@news.wanadoo.fr...

| Il y a plusieurs choses de bonnes dans cette fonction :

Merci pour ces encouragements.

| Reste le code, ce n'est pas secondaire.
| Il est un peu maladroit.
|
| Amha, quand tu aura optimis� cette petite fonction, t'aura compris pas
| mal de choses au C.

Hum! je crois qu'il y a encore du boulot, mais je ne manquerais pas de revenir ici.

J'ai un peu exploit� toutes les r�ponses, dont certaines comportaient des termes que je n'ai pas compris( VLA , OP).
Je pense que ma fonction tiens maintenant un peu mieux la route.

En tous cas, merci � tous.

Alain CROS

#include <ctype.h>

int convstrnum(int taille, char *c)
/*  Remplace, dans une chaine de caract�res repr�sentant un chiffre,
        la virgule par un point.
    Retourne :
        la position de ce point dans la chaine (base 1).
        0 si pas de point.
        -1 si pas un chiffre (la chaine reste inchang�e).
*/
{
    int i;      /*position du char*/
    int j = 0;  /*position du s�parateur d�cimal*/
    char *pch = c;
    for(i = 1; i <= taille; i++)
    {
        if(!isdigit(*pch))
            switch(*pch)
            {
                case ',':
                case '.':   /*si plusieurs virgules et ou points --> erreur*/
                    j = (j == 0) ? i : -1;
                    break;
                case '-':   /*nombre n�gatif*/
                    if(i == 1)
                        break;
                default:    /*mauvais caract�re --> erreur*/
                    j = -1;
            }
        if(j == -1)
            break;
        *pch++;
    }
    if(j > 0)
        *( c + j - 1 ) = '.' ;  /*le s�parateur d�cimal devient un point*/
    return j;
}
Technical Details
Message-ID: <4336f07f$0$18817$626a14ce@news.free.fr>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!infeed-4.proxad.net!news18-e.free.fr!not-for-mail
References: <4333e995$0$17469$626a14ce@news.free.fr> <4335b780$0$5400$8fcfb975@news.wanadoo.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,366ad66ae342f8da
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!infeed-4.proxad.net!news18-e.free.fr!not-for-mail
From: "Alain CROS" <Personne@ICI>
Newsgroups: fr.comp.lang.c
References: <4333e995$0$17469$626a14ce@news.free.fr> <4335b780$0$5400$8fcfb975@news.wanadoo.fr>
Subject: Re: memcpy et char
Date: Sun, 25 Sep 2005 20:45:05 +0200
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Lines: 64
Message-ID: <4336f07f$0$18817$626a14ce@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 25 Sep 2005 20:46:24 MEST
NNTP-Posting-Host: 62.147.11.30
X-Trace: 1127673984 news18-e.free.fr 18817 62.147.11.30:1054
X-Complaints-To: abuse@proxad.net