eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjak zamienić string na hex?jak zamienić string na hex?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.uni-
    stuttgart.de!news.k-dsl.de!border2.nntp.ams2.giganews.com!border2.nntp.ams.giga
    news.com!nntp.giganews.com!feeder2.cambriumusenet.nl!feeder1.cambriumusenet.nl!
    feed.tweaknews.nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshostin
    g.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neos
    trada.pl!news.neostrada.pl.POSTED!not-for-mail
    Newsgroups: pl.comp.programming
    Followup-To: pl.comp.programming
    From: "Bronek (bryx) Tatukl" <b...@k...com>
    Subject: jak zamienić string na hex?
    Date: Tue, 06 Jul 2010 09:49:46 +0200
    Organization: Niezależna Samorządna Grupa Leni
    User-Agent: KNode/0.99.01
    MIME-Version: 1.0
    Content-Type: text/plain; charset="ISO-8859-2"
    Content-Transfer-Encoding: 8Bit
    Lines: 50
    Message-ID: <4c32dfc5$0$19170$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 83.24.166.101
    X-Trace: 1278402504 unt-rea-a-01.news.neostrada.pl 19170 83.24.166.101:39701
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:185966
    X-Original-Bytes: 1976
    [ ukryj nagłówki ]

    Napisałem na kolanie program do zamiany stringa na hex i niestety okazalo
    się, że zawiera błędy. Nie mam pojęcia gdzie może tkwić błąd.

    $./a.out ą
    strlen() [2]
    wyszlo mi 2, [ffffffff85]
    $./a.out ąc
    strlen() [3]
    wyszlo mi 3, [ffff63]

    Dlaczego wyniki sa rózne? Jeśli mój terminal działa w Utf-8 to ą powinno
    zawierać 2 znaki char. Jeśli jakoś inaczej to drugie wywołanie powinno być
    dłuższe niż pierwsze bo zawiera 2 znaki. Ktoś ma pomysł jak to poprawić?

    _____________________________
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc,char *argv[])
    {
    char *a,*b;
    int i,len;

    len = strlen( argv[1] );

    printf("strlen() [%d]\n",len);

    len=0;
    for(len = 0; argv[1][len] != '\0' ;len++ ) { }

    a=malloc( ( (2*len) +1 ) * sizeof(char) );
    b=a;

    for(i = 0; i < len ;i++ )
    {
    sprintf(a, "%02x", argv[1][i]);
    a += 2;
    }

    a = '\0';

    printf("wyszlo mi %d, [%s]\n",len,b);

    free(b);

    return 0;
    }


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: