Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da upisem alfabet u string automatski?

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kako da upisem alfabet u string automatski?

[ Pregleda: 1634 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

svemirski_brod
Petar Petrovic
Drzavna tajna
BG

Član broj: 223383
Poruke: 33
*.dynamic.isp.telekom.rs.



+2 Profil

icon Kako da upisem alfabet u string automatski?15.10.2012. u 20:23 - pre 140 meseci
Hocu da upisem alfabet, a da ne ubacujem jedno po jedno slovo? Da ga nekako unesem automatski, nekom komandom.
Mi letimo u nebo i znamo svoj put :)
 
Odgovor na temu

svemirski_brod
Petar Petrovic
Drzavna tajna
BG

Član broj: 223383
Poruke: 33
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: Kako da upisem alfabet u string automatski?15.10.2012. u 22:33 - pre 140 meseci
Ovako sam resio:
Code:

#define MAX 100
int main()
{
    int i=0,j;
    char x[MAX];
    for(j=65;j<91;j++) // U ASCII tabeli A=65, Z=90.
    x[i++]=j;             //  J preuzima te vrednosti i dodaje u X[i].
    puts(x);
    return 0;
}

Izbacuje kuke i kvake posle alfabeta, ali za ono sto mi je trebalo radi posao.

Ako neko ima resenje neka javi.


[Ovu poruku je menjao X Files dana 16.10.2012. u 07:08 GMT+1]
Mi letimo u nebo i znamo svoj put :)
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Kako da upisem alfabet u string automatski?16.10.2012. u 05:11 - pre 140 meseci
Evo ti isto rešenje, samo sa tačnom dužinom niza i po meni malo lepše napisano (ovo 65 i 91 mi se nikako ne sviđa ;) ).

Code (c):

int main() {
    int i;
    char letters['Z'-'A'+1];
    for (i = 'A'; i <= 'Z'; i++) {
        letters[i-'A'] = i;
    }
    puts(letters);
    return 0;
}
 
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Kako da upisem alfabet u string automatski?16.10.2012. u 11:05 - pre 140 meseci
Funkcija puts očekuje parametar koji je string ograđen nul karakterom (zero terminated string). Pre pozivanja funkcije puts stavi x[i ]='\0'; i smeće na kraju niza se neće više videti.

[Ovu poruku je menjao X Files dana 16.10.2012. u 13:32 GMT+1]
 
Odgovor na temu

svemirski_brod
Petar Petrovic
Drzavna tajna
BG

Član broj: 223383
Poruke: 33
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: Kako da upisem alfabet u string automatski?16.10.2012. u 19:10 - pre 140 meseci
Jel mozes da mi razjasnis ovo: ['Z'-'A'+1] i peti red?

Zasto takav izraz kad je ovako jednostavnije?

int main() {
int i,j=0;
char letters[j];
for (i = 'A'; i <= 'Z'; i++) {
letters[j++] = i;
}
puts(letters);
return 0;
}

Da li to nesto znaci ili ne? Hvala
Mi letimo u nebo i znamo svoj put :)
 
Odgovor na temu

svemirski_brod
Petar Petrovic
Drzavna tajna
BG

Član broj: 223383
Poruke: 33
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: Kako da upisem alfabet u string automatski?16.10.2012. u 19:11 - pre 140 meseci
Hvala :)
Mi letimo u nebo i znamo svoj put :)
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Kako da upisem alfabet u string automatski?17.10.2012. u 10:33 - pre 140 meseci
Linija char letters[j]; ne bi trebalo da se kompajlira jer vrednost j mora da bude poznata u vreme kompilacije, to jest mora da bude konstanta. Ti si to rešio sa MAX a del-boy je to rešio sa 'Z'-'A'+1. Ista stvar, s tim što del-boyevo rešenje ne uvodi bespotrebno novi podatak, i bolje se iz koda vidi čemu niz služi. Del-boy je takođe uspeo da ukloni promenljivu j, što je okej. Tek u velikim projektima shvatiš da što imaš manje delova (konkretno manje promenljiva) u kodu to je manja verovatnoća da nešto u nekom trenutku (kad menjaš kod) pođe naopako.
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Kako da upisem alfabet u string automatski?17.10.2012. u 11:44 - pre 140 meseci
Citat:
svemirski_brod:
Jel mozes da mi razjasnis ovo: ['Z'-'A'+1] i peti red?

Zasto takav izraz kad je ovako jednostavnije?

int main() {
int i,j=0;
char letters[j];
for (i = 'A'; i <= 'Z'; i++) {
letters[j++] = i;
}
puts(letters);
return 0;
}

Da li to nesto znaci ili ne? Hvala


Već je Mihajlo razjasnio neke stvari, ali ipak da odgovorim.

Kad praviš niz moraš mu zadati veličinu. U prvom primeru ti si zakucao veličinu niza na 100 elemenata iako ti ne treba toliko. Bolja alternativa je zauzmeš mesta koliko ti treba. To možeš uraditi tako što ćeš na papiru (ili u glavi) sračunati i napisati broj ili pustiti program da računa. 'Z' - 'A' + 1 daje dovoljno mesta da se smeste velika slova engleskog alfabeta.

Što se petog reda tiče - to je samo način da sračunam lokaciju gde treba upisati slovo bez korišćenja dodatne promenljive, jer realno nije potrebna. Meni lično je ovakav zapis čitljiviji od tvog.

Generalno gledam da izbegavam magične brojeve (veličina niza, ASCII kod slova itd.) ako mogu kod da napišem i da ga razumem bez gledanja u neki spoljnji izvor informacija (u ovom slučaju ASCII tabela). To je jedini razlog zašto sam poslao i drugo rešenje, ništa više ;)
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kako da upisem alfabet u string automatski?

[ Pregleda: 1634 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.