🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: rot13 [Was : Re: conjugaison et autres ...]

#15246
From: Harpo
Date: Mon, 03 Oct 2005 06:07
88 lines
4378 bytes
Richard Delorme wrote:

> 
> Je crois qu'il y a quelque subtilit� si l'on veut tenir compte du
> signe du type char, et avoir un truc portable.

Il faut en effet faire attention au signe des char.

> �a pourrait ressembler � :

Pour pinailler, je dirais que l'init ne devrait pas se faire dans le
programme mais en amont lors de la g�n�ration/installation du programme
pour la plateforme.
De plus la variable static rend la fonction 'non fil sauf'.

Je verrais plut�t :

-------------------------------------------------
// tr.h
void tr( unsigned char *table, unsigned char *str );
//EOF

-------------------------------------------------
// rot13.h
// FILE GENERATED BY INSTALLATION PROGRAM, DO *NOT* EDIT
// *INDENT-OFF*
static unsigned char rot13[256] =
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
0x20,'!' ,'"' ,'#' ,'$' ,'%' ,'&' ,0x27,'(' ,')' ,'*' ,'+' ,',' ,'-' ,'.' ,'/' ,
'0' ,'1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7' ,'8' ,'9' ,':' ,';' ,'<' ,'=' ,'>' ,'?' ,
'@' ,'N' ,'O' ,'P' ,'Q' ,'R' ,'S' ,'T' ,'U' ,'V' ,'W' ,'X' ,'Y' ,'Z' ,'A' ,'B' ,
'C' ,'D' ,'E' ,'F' ,'G' ,'H' ,'I' ,'J' ,'K' ,'L' ,'M' ,'[' ,0x5c,']' ,'^' ,'_' ,
'`' ,'n' ,'o' ,'p' ,'q' ,'r' ,'s' ,'t' ,'u' ,'v' ,'w' ,'x' ,'y' ,'z' ,'a' ,'b' ,
'c' ,'d' ,'e' ,'f' ,'g' ,'h' ,'i' ,'j' ,'k' ,'l' ,'m' ,'{' ,'|' ,'}' ,'~' ,0x7f,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
};
// *INDENT-ON*
//EOF

-------------------------------------------------
// tr.c
#include <stdio.h>
#include "tr.h"

void tr( unsigned char *table, unsigned char *str ) 
{
    size_t c;
    unsigned char *p;
    for ( p = str; ( c = *(p++) ); putchar( *( table + c ) ) );
}
//EOF

-------------------------------------------------
// rot13.c
#include <stdlib.h>
#include <stdio.h>
#include "rot13.h"
#include "tr.h"
       
int main( int argc, char ** argv )
{
    char ** parg;
    char * str;

    (void) argc;  // Yep !
    for ( parg = argv; ( str = *(++parg) ) ; ) {
        tr( rot13, str );
        putchar( ' ' );
    }
    putchar( '\n' );
    return( EXIT_SUCCESS ) ;
}
//EOF

-------------------------------------------------

Une autre solution, meilleure, serait de compiler s�par�ment la table et
de la mettre dans une biblioth�que avec laquelle on linkerait le
programme rot13.
Technical Details
Message-ID: <4340cabe$0$27448$8fcfb975@news.wanadoo.fr>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!193.252.118.146.MISMATCH!news.wanadoo.fr!news.wanadoo.fr!not-for-mail
References: <1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,b21b26167a936e28
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!193.252.118.146.MISMATCH!news.wanadoo.fr!news.wanadoo.fr!not-for-mail
Message-ID: <4340cabe$0$27448$8fcfb975@news.wanadoo.fr>
From: Harpo <trashcan@hotmail.com>
Subject: Re: rot13 [Was : Re: conjugaison et autres ...]
Newsgroups: fr.comp.lang.c
Date: Mon, 03 Oct 2005 08:07:54 +0200
References: <1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr>
Organization: ARG ; Association pour la Rehabilitation du Goto
User-Agent: KNode/0.8.2
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8Bit
Lines: 88
NNTP-Posting-Date: 03 Oct 2005 08:07:59 CEST
NNTP-Posting-Host: 83.195.36.38
X-Trace: 1128319679 news.wanadoo.fr 27448 83.195.36.38:33704
X-Complaints-To: abuse@wanadoo.fr