Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ Pack funktio

DrDeath [07.12.2008 17:58:37]

#

Löytyykö c++:lle php:n "pack" funktiota vastaavaa luokkaa tai funktiota?
Olen nyt etsinyt sitä jo jonkun aikaa googlesta, mutta en ole löytänyt, ja php:n lähdekoodi on sen verran sotkuista etten ymmärrä siitä mitään (pitäisi opetella koko roska, jotta ymmärtäisi osan siitä).
Pack-funktio toimii sillä tavalla, että jos sille antaa esim. tekstin "HelloWorld" niin ulos tulee "48656c6c6f576f726c64" eli periaatteessa tulos on alkuperäinen teksti hexadesimaaleina.

Antti Laaksonen [07.12.2008 18:08:18]

#

Tuossa on yksi idea toteutukseen:

#include <stdio.h>

char merkit[] = "0123456789abcdef";

void pack(char syote[], char tulos[]) {
    int i;
    for (i = 0; syote[i] != 0; i++) {
        tulos[2*i] = merkit[syote[i]/16];
        tulos[2*i+1] = merkit[syote[i]%16];
    }
    tulos[2*i] = 0;
}

int main(void) {
    char teksti[] = "HelloWorld";
    char heksa[50];
    pack(teksti, heksa);
    printf("%s\n", heksa);
}

os [07.12.2008 18:09:08]

#

Ei löydy standardikirjastotsta tuollaista. Tuollaisen funkkarin voit tosin tehdä itse melko helposti, jos tiedät tarkemmin, mitä haluat sen tekevän.

EDIT: ... kuten Antti ehtikin jo näyttää :)

DrDeath [07.12.2008 18:26:29]

#

Teinkin, mutta siitä tuli melko sotkuinen, joten lähdin hakemaan valmista netistä. Kiitokset Antille!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta