Article View: fr.comp.lang.c
Article #15516Re: memcpy et char
From: Alcor
Date: Sat, 24 Sep 2005 06:26
Date: Sat, 24 Sep 2005 06:26
88 lines
3762 bytes
3762 bytes
> Pour copier une chaine dans une autre chaine, j'utilise memcpy.
ben normalement, c'est strcpy.
memcpy, c'est pour un buffer de longeur fixe...
> Est ce n�cessaire d'�crire
> memcpy(ch, c, sizeof(char) * taille);
> ou bien je peux me contenter d'�crire
> memcpy(ch, c, taille);
ben la taille du type char n'a pas trop chang� ces trente derni�res ann�es,
je pense qu'on peut se contenter de la deuxi�me version. � moins que tu
n'envisages de faire une version unicode...
>
> Toutes critiques sur la fonction seront les bienvenues.
>
> Merci.
>
> Alain CROS
>
> #include <string.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 = 1, j = 0, k = 0;
> char ch[taille + 1];
> char *pch = ch;
> memcpy(ch, c, sizeof(char) * taille);
> ch[taille] = '\0';
> while(*pch != '\0')
> {
> if((*pch < '0') || (*pch > '9'))
> switch(*pch)
> {
> case '.':
> j = (++k == 2) ? -1 : j;
> break;
> case ',':
> *pch-- = '.';
> j = i--;
> break;
> default:
> j = -1;
> }
> if(j == -1)
> break;
> *pch++;
> i++;
> }
> if(j != -1)
> memcpy(c, ch, sizeof(char) * taille);
> return(j);
> }
ben si tu n'as pas besoin de super performances, je suppose que �a va
marcher.
sinon les noms de variable sur une lettre c'�tait bon dans les ann�es 80,
depuis on a d�couvert que c'�tait super chiant � relire on mettra plutot
des
InputString
CurrentLocation
ReturnCode
� la place.
de plus en C, on a l'habitude de raisoner en base 0. tu viens du basic ?
mais l'intention est bonne. je pense que dans 6 mois � deux ans tu
revisitera cette fonction et qu'elle tiendra sur 3 lignes...
par exemple, as-tu vraiement besoin d'un code de retour si d�taill� ? ton
programme principal exploite-t-il vraiment toutes les nuances?
_______________________________________________________________________________
Posted Via Uncensored-News.Com - Accounts Starting At $6.95 - http://www.uncensored-news.com
<><><><><><><> The Worlds Uncensored News Source <><><><><><><><>
Technical Details
Message-ID:
<01c5c0d0$d428c760$6801a8c0@ramislap>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!newshosting.com!meganewsservers.com!feeder2.on.meganewsservers.com!newsfeed.telusplanet.net!newsfeed.telus.net!cyclone.bc.net!news.alt.net!feed.uncensored-news.com!news.uncensored-news.com!news.uncensored-news.com!not-for-mailReferences:
<4333e995$0$17469$626a14ce@news.free.fr>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,366ad66ae342f8da X-Google-Attributes: gidf9822,public X-Google-Language: FRENCH,ASCII From: "Alcor" <Alcor@aol.com> Subject: Re: memcpy et char Newsgroups: fr.comp.lang.c References: <4333e995$0$17469$626a14ce@news.free.fr> Message-ID: <01c5c0d0$d428c760$6801a8c0@ramislap> X-Newsreader: Microsoft Internet News 4.70.1155 NNTP-Posting-Host: news.uncensored-news.com Lines: 88 X-Comment: NOTICE: Uncensored-News.Com does not condone, nor support, spam, illegal or copyrighted postings. X-Report-Abuse-To: http://www.uncensored-news.com/terms.html#13 X-T.O.S.: http://www.uncensored-news.com/terms.html Date: 24 Sep 2005 06:26:34 GMT Organization: Uncensored-News.Com $6.95 Uncensored Newsgroups. Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!newshosting.com!meganewsservers.com!feeder2.on.meganewsservers.com!newsfeed.telusplanet.net!newsfeed.telus.net!cyclone.bc.net!news.alt.net!feed.uncensored-news.com!news.uncensored-news.com!news.uncensored-news.com!not-for-mail