[ SiN_MaFiJe @ 05.12.2004. 15:21 ] @

int main()
{

char* ime ;
cout << " Unesi svoje ime\n" ;
if( ime== mile) {
cout << "Mile gay" ;
}
if(ime == miladin) {
cout << "miladin gay" ;
}
if ( ime == boske ) {
cout << "boske master :p" ;
}
if ( ime == boske_gay ) {
cout << "mile ne lupaj :) " ;
}
else {
cout << "Zdravo," << ime << endl ;
}
}

i sad kad ukucam mile ili neko drugo ime on samo pokaze ovo zadnje npr.
ja ukucam mile a on mi pokaze zdravo,mile a ne mile gay u cemu je stos


[Ovu poruku je menjao Dragi Tata dana 05.12.2004. u 18:17 GMT+1]
[ Srki_82 @ 05.12.2004. 16:10 ] @
Bitno ti je da napises ime == "Pera". Znaci pod navodnicima. Kad budes uzimao ime koje kucka korisnik treba da alociras neku memoriju za char* ime. Najjednostavniji nacin je da koristis std::string. Ta klasa sve radi za tebe. Kod grananja pisi ovako:

if(...)
{
...;
};
else if(...)
{
...;
};
else if(...)
{
...;
};
else
{
...;
};

To bi trebalo da radi.
[ McKracken @ 05.12.2004. 20:01 ] @
switch()?
[ Milos Stojanovic @ 05.12.2004. 20:05 ] @
:)
neće da može ni
Code:
if(ime == "Pera")

već mora
Code:
if (strcmp(ime, "Pera") == 0) 


[Ovu poruku je menjao trooper dana 06.12.2004. u 01:59 GMT+1]
[ Srki_82 @ 05.12.2004. 23:51 ] @
Upsss... da, trooper je upravu :) C se malo razlikuje od Delphi-ja :P
Sve u svemu slusaj trooper-a i mene i daleko ces dogurati :P
[ Dragi Tata @ 06.12.2004. 00:47 ] @
Citat:
trooper: :)
neće da može ni
if(ime == "Pera")
već mora
if (strcmp(ime, "Pera") == 0) ...


Ako umesto


Code:
char* ime ;

stavi
Code:
string ime ;


Onda može i
Code:
if(ime == "Pera")


Samo, u primeru fali linija sa cin, a rekao bih da fali i linija u kojoj se rezerviše memorija za ime.

I još jednom apelujem na učesnike foruma da koriste code tagove kad postuju kod.
[ Milos Stojanovic @ 06.12.2004. 00:57 ] @
Da, DT, u pravu si. Samo nistam hteo čoveka da teram da koristi string umesto char* ako je već u kôdu krenuo sa char*. A za code tag, ok. Mislio sam da je glupo stavljati code tag kad je kôd od 2 reda. Ispravljeno.
[ Dragi Tata @ 06.12.2004. 03:10 ] @
Citat:
trooper: A za code tag, ok. Mislio sam da je glupo stavljati code tag kad je kôd od 2 reda. Ispravljeno.


Hvala, trooper. Moja primedba se više odnosila na postavljača teme.
[ SiN_MaFiJe @ 06.12.2004. 12:50 ] @
Reci na sina a ne na postavljaca teme :) a sory zbog tagova next time cu ih staviti ! I da ovo za pentiumov procesor je loodilo :)) nego hvala vam momci aj p0z C ya !




------------------
Jedem sarmu jer sam frajer :))
[ SiN_MaFiJe @ 06.12.2004. 12:54 ] @
I da nisam pitao za sta trooper sluzi to strcmp ??
Code:
 
if (strcmp(ime, "Pera") == 0) 
[ Milos Stojanovic @ 06.12.2004. 14:11 ] @
http://www.cplusplus.com/ref/cstring/strcmp.html

ili prvi rezultat za strcmp na "Googletu"

Ako je problem engleski:
poredi prvi string sa drugim, tako što poredi k-to slovo jednog stringa sa k-tim slovom drugog. I tako do prvog slova koje se razlikuje. Ako su sva slova ista, onda vraća 0, ako je prvo slovo koje se razlikuje veće kod prvog stringa onda funkcija vraća 1, ako je veće kod drugog stringa onda vraća -1. Aku su stringovi različitih dužina, veći je onaj koji je veće dužine. Dakle poređenje je leksikografski.
[ nenad_sz @ 07.12.2004. 08:28 ] @
napises lepo prvo
char ime[64];

inace switch je mnogo koristan u ovom slucaju...

switch()

{
case pera:
ime=pera;
break;
case mirko:
ime=mirko;
break;
}


recimo...

[ Milos Stojanovic @ 07.12.2004. 19:38 ] @
uffff...
zašto ljude učite pogrešno?
Prvo: sintaksa switch statement-a je
Code:
switch({NESTO})
{
     case {C1}: [blok_komandi] [break];
     case {C2}: [blok_komandi] [break];
     ...
     case {CN}: [blok_komandi] [break];
     default: ...
}

gde se promenljiva NESTO poredi sa konstantama C1, C2 .... CN. Ako NESTO ima istu vrednost kao neka od konstanti, onda se izvršava kod nakon te konstante.

Drugo: konstante u switch statement-u moraju biti integralnog tipa! Što char* i string nisu!

Treće: ime=pera ni u ludilu neće da radi.

Više o switch naredbi ovde i ovde.

[ Dragi Tata @ 07.12.2004. 20:08 ] @
Leleee! Kako li mi je ovo promaklo?

Pošto je trooper već odgovorio, neću da brišem Nenadov post, ali apelujem na učesnike da isprobaju primere koje postuju, ili makar da se ograde da pišu napamet.
[ `and @ 07.12.2004. 23:20 ] @
A jel moze da koristi enum ?
[ Srki_82 @ 08.12.2004. 16:34 ] @
Mozda je nenad mislio na switch u C#? Tu konstante u switch statement-u mogu biti i stringovi, zar ne?
[ ibro @ 08.12.2004. 20:29 ] @
Nisam primjetio da je iko rekao da se pri koristenju naredbe strcmp() mora stavit i zaglavlje #include<string.h>
ako nije tako ispravite me.
[ SiN_MaFiJe @ 12.12.2004. 14:09 ] @
Pa tako je mora da se stavi #include<string.h> ali to se zna ne mora da se napominje :) a ovo za switch sam hteo da pitam ali nisam hteo da pametujem posto trenutno ucim
[ SiN_MaFiJe @ 12.12.2004. 14:12 ] @
I _Super_Ellite_Bug_ ja tek ucim i ti ako znas da programiras kroz to si prolazio :) jel tako
[ filmil @ 13.12.2004. 12:11 ] @
Citat:
SiN_MaFiJe: Pa tako je mora da se stavi #include<string.h> ali to se zna ne mora da se napominje :)


Malo korektnosti nije naodmet:

U C-u je zamalo pa sve dozvoljeno, ali treba znati kakve posledice to ima na ostatak programa.

Ako koristite neku funkciju koja nema prototip C je automatski deklariše kao funkciju koja uzima nepoznat broj parametara i vraća int.

To se zove implicitna deklaracija. Tako, ako ne koristite zaglavlje a koristite strcmp, kompajler misli da je u pitanju funkcija:

int strcmp(...);

što je u slučaju strcmp u redu, ali u slučaju nekih drugih funkcija može da dovede do grešaka. Ako znate tačno šta radite, možete da izostavite deklaraciju funkcije. Ako ne znate tačno šta radite, onda nije pametno praviti egzibicije; ili treba doučiti.

Praktična mudrost je da se uvek koriste odgovarajuća zaglavlja, jer to pomaže kod otkrivanja i ispravljanja grešaka, kao i provere ispravnosti programa.

f
[ SiN_MaFiJe @ 13.12.2004. 14:55 ] @
Ok Ok sry :) A sto se tice ovog da se douci sta da doucim brate kad neam pojma citam one vektore vec tri nedelje i nemogu da ih skontam :( Al aj valda ce doci i taj dan pa cu ih skontati
[ nenad_sz @ 04.09.2012. 22:47 ] @
Citat:
Srki_82:
Mozda je nenad mislio na switch u C#? Tu konstante u switch statement-u mogu biti i stringovi, zar ne?


c# resenje:

Code:
string ime = console.readline();
if(ime.toupper() = "MILE") ispisiNestio();
else if(ime.toupper() = "BRANKO") ispisiNestio2();
else ispisigresku();



P.S. jel moguce da je 8 godina proslo ;)