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.
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); }
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ää :)
Teinkin, mutta siitä tuli melko sotkuinen, joten lähdin hakemaan valmista netistä. Kiitokset Antille!
Aihe on jo aika vanha, joten et voi enää vastata siihen.