Výsledky 1 až 11 z 11

Téma: [C/C++] Int na Char[]

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1

    Question [C/C++] Int na Char[]

    Potřeboval bych poradit, chci převést intové číslo do pole charů a to asi takto:


    120 -> [1] [2] [0]

    Našel jsem si pro to sice funkci sprintf, ale ta mi to udělá takto(nevím proč):

    INT pole CHARů
    120 -> [0] [2] [1]

    Mnou použitý příkaz, co dělá výše zmiňované:

    sprintf(this->number,"%i", x);

    this->number je ukazatel na pole charů definované v třídě.
    x je intové číslo

    Děkuji za radu
    Oblíbil jsem si Dropbox - pokud chcete získat bonusových 250 MB k základním 2 GB, registrujte se zde (dozvím se Váš email a jméno, co zadáte při registraci).

    Vyšla Mandriva Linux 2010 informace zde, download zde

    AMD AthlonXP 2000+; 1,5 GB RAM;WD 250 GB + WD 60 GB; GF 4 MX 64MB VRAM.
    Mandriva Linux 2010 CZ FREE (výchozí), Windows XP Professional SP3 CZ(jen škola).
    Spokojený uživatel KDE 4.4.2
    Pokud máte zájem, mám svůj blog, který najdete zde.


  2. #2

    Standardní Re: [C/C++] Int na Char[]

    Dej si pozor ať máš inicializované to pole znaků. Tohle vypadá jako by jsi měl jen náhodné věci z paměti.

    Kód:
        char * c = new char[255];
        int i = 255;
        
        sprintf(c,"%i",i);
        
        printf("%c %c %c",c[0],c[1],c[2]);
    
        delete [] c;
    Tohle mi funguje naprosto korektně.

  3. #3

    Standardní Re: [C/C++] Int na Char[]

    Špatně jsem se vyjádřil, já potřebuji, aby v C[0] byla 5(v našem případě) a ne 2. Mám totiž udělat modul pro sčítání dvou čísel, jejíchž čísla jsou právě v takovémto poli, a proto právě potřebuji, aby jednotky byly na indexu 0, desítky na indexu 1, stovky na indexu 2 tohoto pole, aby se to dobře sčítalo.
    Oblíbil jsem si Dropbox - pokud chcete získat bonusových 250 MB k základním 2 GB, registrujte se zde (dozvím se Váš email a jméno, co zadáte při registraci).

    Vyšla Mandriva Linux 2010 informace zde, download zde

    AMD AthlonXP 2000+; 1,5 GB RAM;WD 250 GB + WD 60 GB; GF 4 MX 64MB VRAM.
    Mandriva Linux 2010 CZ FREE (výchozí), Windows XP Professional SP3 CZ(jen škola).
    Spokojený uživatel KDE 4.4.2
    Pokud máte zájem, mám svůj blog, který najdete zde.


  4. #4

    Standardní Re: [C/C++] Int na Char[]

    A co si to napsat sam?
    Pro integer je to jeste vcelku easy. (pro real/float uz je to jiny kafe )

    Kód:
    char * c = new char[255];
    int rad = 0;
    bool znamenko = cislo >= 0;
    if (cislo == 0) c[rad++] = 0;
    while (cislo > 0)
    {
       c[rad++] = (cislo % 10)+'0';
       cislo = cislo / 10;
    } 
    c[rad] = znamenko ? '+' : '-';
    
    
    delete [] c;
    Mozna tam v tom moduleni chybi nejake explicitni konverze...
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  5. #5

    Standardní Re: [C/C++] Int na Char[]

    Citace Původně odeslal MEluZíNa Zobrazit příspěvek
    A co si to napsat sam?
    Pro integer je to jeste vcelku easy. (pro real/float uz je to jiny kafe )

    Kód:
    char * c = new char[255];
    int rad = 0;
    bool znamenko = cislo >= 0;
    if (cislo == 0) c[rad++] = 0;
    while (cislo > 0)
    {
       c[rad++] = (cislo % 10)+'0';
       cislo = cislo / 10;
    } 
    c[rad] = znamenko ? '+' : '-';
    
    
    delete [] c;
    Mozna tam v tom moduleni chybi nejake explicitni konverze...
    Abych se přiznal, nejsou z toho moc chytrý, výše uvedený zdrojový kód jsem moc nepochopil Potřeboval bych jen poradit s tím, jak přehodit ty indexy v tom poli, jak píšu výše, to sčítání si udělám sám...
    Oblíbil jsem si Dropbox - pokud chcete získat bonusových 250 MB k základním 2 GB, registrujte se zde (dozvím se Váš email a jméno, co zadáte při registraci).

    Vyšla Mandriva Linux 2010 informace zde, download zde

    AMD AthlonXP 2000+; 1,5 GB RAM;WD 250 GB + WD 60 GB; GF 4 MX 64MB VRAM.
    Mandriva Linux 2010 CZ FREE (výchozí), Windows XP Professional SP3 CZ(jen škola).
    Spokojený uživatel KDE 4.4.2
    Pokud máte zájem, mám svůj blog, který najdete zde.


  6. #6

    Standardní Re: [C/C++] Int na Char[]

    Kód:
    char * c = new char[255];
    int rad = 0; // aktualni cifra
    bool znamenko = cislo >= 0; // zapamatuju si znamenko cisla
    cislo = cislo >= 0 ? cislo : -cislo; // dale jiz pracuju jen s absolutni hodnoutou
    if (cislo == 0) c[rad++] = '0'; // specialni pripad ze cislo == 0
    while (cislo > 0)  // dokud je cislo > 0
    {
       c[rad++] = (cislo % 10)+'0'; // na prislusnou pozici v poli vlozim zbytek po deleni 10; +'0' jen zvysi hodnotu charu tak aby to bylo v rozsahu '0'..'9'
       cislo = cislo / 10; // uriznu posledni cifru
    } 
    c[rad] = znamenko ? '+' : '-'; // nakonec vlozim do retezce znamenko
    
    
    delete [] c;
    PS: byly tam dva bugy 0 -> '0' a prace jen s absolutni hodnotou cisla...
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. Intel Int. GMA X3100 Glx
    Založil KaplanCZ v sekci fóra Ostatní grafické karty
    Odpovědí: 0
    Poslední příspěvek: 06.10.2008, 11:33
  2. roletové menu v java apletu
    Založil seuss v sekci fóra Programování
    Odpovědí: 6
    Poslední příspěvek: 20.05.2006, 20:59
  3. Existuje Motherboard s int. grafikou a DVI vystupem ?
    Založil Helium v sekci fóra Nákupní poradna
    Odpovědí: 2
    Poslední příspěvek: 26.11.2005, 20:30
  4. Win XP SP2 (int.) Jak se zbavit ty ikony o zabezpeceni PC ?
    Založil Helium v sekci fóra Ostatní operační systémy
    Odpovědí: 3
    Poslední příspěvek: 10.11.2004, 13:14
  5. [C,WXP] Jak pretypovat int na pointer na char?
    Založil and35rew v sekci fóra Programování
    Odpovědí: 7
    Poslední příspěvek: 14.07.2004, 20:06

Klíčová slova k tématu

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •