[ mls @ 09.02.2010. 17:42 ] @
Code:
int a=80, b=78, c=04, all;


Dakle, imam nekoliko brojeva (int). Hocu da ih spojim da "all" bude 807804. Pokusao sam na par nacina ali uvek izostavi nulu sa pocetka i ispadne 80784.

Kako konvertovati int u string bez gubitka nule, spojiti na pomenuti nacin (ili dodavati int u string) i zatim izvlaciti broj sa odredjene pozicije ( all[5] ). A onda taj broj ponovo vratiti u int. Ili neko jednostavnije resenje... nadam se da razumete sta hocu da postignem.

Hvala unapred. :)

Pozdrav.
[ X Files @ 09.02.2010. 18:52 ] @
Na koje se razvojno okruzenje/kompajler odnosi tvoje pitanje? (vidim da pominjes C++ Builder u jednoj temi)

Borland C++ Builder i VCL biblioteka klasa imaju brojne mogucnosti za manipulaciju stringovima.

Na primer:
Code:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        // ceo broj ne pocinje sa nulom!
        int a=80, b=78, c=04, all;

        // konverzija INT u STR, dva nacina
        AnsiString BrojKaoString1 = AnsiString(a) + AnsiString(b) + AnsiString(c);
        AnsiString BrojKaoString2 = IntToStr(a) + IntToStr(b) + IntToStr(c);

        // prikaz
        ShowMessage( BrojKaoString1 );
        ShowMessage( BrojKaoString2 );

        // pristup elementima stringa
        for ( int i=1; i<= BrojKaoString1.Length(); i++ )
                ShowMessage( BrojKaoString1[i] );

        // konverzija STR u INT, varijanta 1
        all = BrojKaoString1.ToInt();
        ShowMessage( BrojKaoString1 );

        // konverzija STR u INT, varijanta 2
        all = StrToInt( BrojKaoString2 );
        ShowMessage( BrojKaoString2 );
}

Ima jos nacina ali to je otprilike to.


Sto se tice NULE ispred BROJA, kada definises tu vrednost kao INT ona kao i da ne postoji, zato jeste rezultat takav kakav je.

Ako hoces da resis taj slucaj, ili promenljivu definises kao string (AnsiString ili UnicodeString) ili se sluzis nekim pomocnim kodom. Sve zavidi od potrebe.
[ mls @ 09.02.2010. 19:14 ] @
E to, hvala mnogo. :)

Izgleda da cu koristiti string od samog pocetka, a menjati u int pre ubacivanja u formulu. Inace Borland C++ Builder je u pitanju.
[ X Files @ 09.02.2010. 19:23 ] @
Kada vrsis konverziju u "int" iz "stringa", tada treba da vodis racuna o validnosti:

Code:

#include <StrUtils.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        AnsiString Broj = "1234NijeBroj";

        // ako je greska, uzmi default vrednost
        int Broj1 = StrToIntDef( Broj, 999 );

        ShowMessage( Broj1 );

        try
        {
                int Broj2 = StrToInt( Broj );
        }
        catch ( const Exception &e )
        {
                // ako je greska, ispisi poruku o gresci 
                // (u razvojnom okruzenju ces ovome (catch) zavrsiti u debuggeru, a u realnom kodu bice samo uhvacena poruka o gresci)
                ShowMessage( e.Message );
        }
}


Ipak, ako imas nameru da proucavas C/C++ programiranje, preporucujem da se prvo upoznas sa osnovnim nacinima baratanja brojevima i stringovima (char, string) po standardu. Borland C++ Builder je baziran na VCL biblioteci, koja nije standard, pa te moze odvuci u nekom drugom smeru.
[ mls @ 09.02.2010. 20:09 ] @
Da onda promenim okruzenje? Borland sam izabrao na brzinu jer sam video da ima nekih objasnjenja i teksta na par top tema ovde. Biblioteke jos nisam skapirao.. podelu i znacaj i tako to..
Koje okruzenje bi bilo najbolje za pocetak (pa i za kasnije kada malo bolje skontam)?

Inace, krenuo sam da prelistavam redom http://www.cplusplus.com/doc/tutorial/
[ X Files @ 11.02.2010. 06:39 ] @
Jako je nezahvalno preporucivati razvojna okruzenja i kompajlere, pa to necu ciniti.

Strateski gledano, Microsoft-ovi proizvodi su najcesce povoljan izbor.

Borland/Embarcadero proizvodi po mom misljenju su bili izvanredno zamisljeni, laki za koriscenje, s fantasticnom bibliotekom klasa (VCL) ali ...

Mnogi se opredeljuju za neku kombinaciju, recimo besplatan Microsoftov kompajler i okruzenje + besplatna biblioteka klasa nekog drugog prizvodjaca (WxWidgets).
[ BlackSpyder @ 17.02.2010. 17:13 ] @
Po mom iskustvu ikada najbolje nadjena stranica
u vezi programiranja C,i C++ je http://www.tenouk.com/
a sto se tice kompajlera to moras sam izabrati i raditi na tom okruzenju
a ne menjati kompajlere non stop.
naprimer,ako koristis DevCpp kompajler nemozes koristiti biblioteku
#include <conio> dok neuradis download i nedopunis kompajler sa svim potrebnim stvarima
prema tome uzmi jedno razvojno okruzenje i radi na njemu.
ali probaj da kupisi i neku knjigu jer postedeces oci makar malo,nema nista bez dobre knjige.
probaj naprimer ovu knjigu da kupis ok je: C++ Izvornik prema ANSI/ISO standardu
od Stanley B.Lippman Josee Lajoie.
nepricam ti nista napamet nego samo prema iskustvu.
Pozdrav ;) Happy Coding