Article View: fr.comp.lang.c
Article #15382Re: memcpy et char
From: Alain CROS
Date: Sun, 25 Sep 2005 18:45
Date: Sun, 25 Sep 2005 18:45
60 lines
2740 bytes
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-mailReferences:
<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