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

[Zadatak] Dupliranje odredjenog karaktera

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Dupliranje odredjenog karaktera

[ Pregleda: 2433 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon [Zadatak] Dupliranje odredjenog karaktera09.11.2005. u 17:51 - pre 181 meseci
moze li mi ko pomoci da nadjem gresku zbog koje ovaj kod ne radi??

zadatak je sasvim jednostavan:

unosimo neku rijec ili recenicu i program treba da "pregleda" ono sto smo unijeli i da svako nadjeno slovo "d" uduplira...

znaci ako unesemo "zdravo!", kad program zavrsi svoje , treba da istampa "zddravo!"
dakle, moj kod:

Code:

#include <stdio.h>

char *prepravi(char *a)
{        
char *p,*q;
p=a;
while(*p!='\0')
{
if (*p!='d')
{
*q++=*p;
}
else
{
*q++=*p;
*q++=*p;
}
p++;
}
*q='\0';
return q;
}


main()
{
char *a;
printf("Unesite neku rijec: \n\n");
gets(a);
printf("prepravljena rijec: %s",prepravi(a));
}




there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.dsl.pipex.com.



+4 Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera09.11.2005. u 18:02 - pre 181 meseci
Nijedan od pointera (sem 'p') ti nije inicijalizovan, kompajler ti je sigurno prijavio to, chitaj warning-e
 
Odgovor na temu

BigSmallMan

Član broj: 55561
Poruke: 7
*.nspoint.net.



Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera09.11.2005. u 18:08 - pre 181 meseci
Ne smes da definises a kao char *a vec moras da zauzmes odgovarajucu memoriju za taj string, odnosno probaj a da definises kao char a[100].Probaj nesto ovako:
Code:

#include <stdio.h>

static char g[100];
 
char *prepravi(char *a)
{        
char *p,*q;
p=a;
q=g;
while(*p!='\0')
{
if (*p!='d')
{
*q++=*p;
}
else
{
*q++=*p;
*q++=*p;
}
p++;
}
*q='\0';
return q;
}


main()
{
char a[100];

printf("Unesite neku rijec: \n\n");
gets(a);
prepravi(a);
printf("prepravljena rijec: %s",g);
}


Naravno kod zahteva celokupnu promenu, ja sam promenio tvoj postojeci da bih ti ukazao na osnovnu gresku, a to je da uvek moras da zauzmes komad memorije za string, a ne da ga deklarises samo sa char*.


[Ovu poruku je menjao BigSmallMan dana 09.11.2005. u 19:30 GMT+1]
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera10.11.2005. u 09:34 - pre 181 meseci
hmm... interesantno je da moj profesor vrsi deklaraciju samo sa char *a....

ok, hvala vam... ovo ce, kad izvrsim inicijalizaciju, vjerovatno biti ok....
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
*.vdial.verat.net.

ICQ: 208550327


+14 Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera11.11.2005. u 00:04 - pre 181 meseci
gets funkcija NE ZNA koliko karaktera unosis sa tastature ( mogli su da naprave sistem stalnog realociranja memorije u gets funkciji ali to nije to zbog fragmentacije memorije ).

char a[100] znaci da ces maksimalno imati 100 karaktera i ne smes da ih prekoracis jer ce doci do "prelivanja" karaktera po memoriji ( memory leak ) ...

Tvoj profesor izgleda nije pokrenuo ovaj program... Obavezno ga ispravi...
EOF
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera12.11.2005. u 16:51 - pre 181 meseci
da...ok ... sada je sve u redu...

ja sam znao sa char a[100] uraditi, ali sam htio provjeriti zasto profesor stavlja samo char *a....

uglavnom, sada je sve u redu...
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4876
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+628 Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera12.11.2005. u 18:58 - pre 181 meseci
Citat:

[...] jer ce doci do "prelivanja" karaktera po memoriji ( memory leak ) ...


Mislim da se pojava zove:

"buffer overun" ('pretrčavanje bafera')

... i ona je omiljena tehnika hakera, zbog kojih se generalno savetuje, na primer za
kopiranje: strncpy() umesto strcpy(), pri cemu se ono 'n' izracunava sa strlen().

Ovo pretrčavanje u principu ne mora da izazove Memory Leak, ali itekako moze
ako unisti adrese objekata...
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera12.11.2005. u 19:07 - pre 181 meseci
Citat:
ali sam htio provjeriti zasto profesor stavlja samo char *a....


Zato shto je nekada predavao OTO ili biologiju, pa prekomandovan u "informatiku" koja ga zanima koliko i mene biologija?
A ako si na faksu, tek onda nemam rechi... kazhi profi da svrati na ES
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: [Zadatak] Dupliranje odredjenog karaktera13.11.2005. u 15:28 - pre 181 meseci
pa dobro...
ne zelim nikoga napadati...

mozda sam i ja pogrijesio....ko zna...??

ne desava mi se rijeko da "zaspem" na casu... :-)

ma nije ni vazno....


ok, hvala vam....
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Dupliranje odredjenog karaktera

[ Pregleda: 2433 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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