[ bags @ 04.11.2005. 14:20 ] @
Trebam implementirati tzv. cezarovo sifrovanje. (pomjera slovo za 3 unapred,tako ce recimo rec abc biti sifrovana u DEF). Sifrovana trebaju biti samo 26 malih i 26 velikih slova engleske abecede.

Ja sam to uradio prilicno pjeske.Napravio sam dva niza znakova,jedan sa velikim slovima drugi sa malim.Svaki taj niz sam povecao za po tri slova (jer ako mi dodje recimo Z ili z treba ga pretvoriti u C ili c).I sad jednostavno sam stavio pointer da "seta" i ako nadje slovo jednostavno pogleda koje je trece od njega .

Nadam se da ste me razumjeli.

Da li neko ima bolju ideju kako ovo odraditi?
[ uranium @ 04.11.2005. 15:58 ] @
Evo jedne ideje. Naravno, rešenje nije idealno, ali čisto kao ilustracija:

Code:

void main(){
    char bufer[256];
    int i;
    gets(bufer);
    
    for(i=0;bufer[i];i++)
        if(bufer[i]<='Z')
            bufer[i]=(bufer[i]-'A'+3)%26+'A';
        else
            bufer[i]=(bufer[i]-'a'+3)%26+'a';


    printf("Sifrat je:\n%s\n",bufer);
}


Podrazumeva se da se unose samo mala i velika slova...