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

[Zadatak] Prepisivanje reci obrnutim redosledom

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Prepisivanje reci obrnutim redosledom

[ Pregleda: 2115 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Andrija91
Andrija Petrovic
Ucenik
Pirot

Član broj: 219479
Poruke: 45
109.106.253.*



Profil

icon [Zadatak] Prepisivanje reci obrnutim redosledom23.01.2010. u 10:12 - pre 173 meseci
Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  char pal[1000],npal[1000],fin[1000];
  int i,j=1,len;
  scanf("%s",&pal);
  len=strlen(pal);
  for(i=len;i>=1;i--)
  {
   npal[j]=pal[i];
   j+=1;
  } 
  printf("%s",npal);
  system("PAUSE");    
  return 0;
}

Zbog cega ovo ne radi? Kada pokrenem program ispise jedan bezvezan znak, a trebalo bi da ispise znakove unete reci unazad!?

EDIT X Files: Milim Vas koristite CODE tagove.

[Ovu poruku je menjao X Files dana 23.01.2010. u 12:06 GMT+1]
 
Odgovor na temu

GORSHTAK
Ivan Matić

Član broj: 136182
Poruke: 285
77.46.208.*



+5 Profil

icon Re: prepisivanje reci obrnutim redosledom23.01.2010. u 11:04 - pre 173 meseci
Niz nikad ne počinje sa 1 već sa nula, tako da ti treba za početak j=0.
Takođe ne završava se sa len već sa len-1: for(i=len-1; i>=0; i--)
I za kraj, unutar for petlje nisi stavio index na originalnom nizu: npal[j] = pal[ i];
ili si stavio ali je forum to prepoznao kao italic :)

Jedan mali savet, za svaki slučaj na na nov niz stavi npal[len] = '\0', neki kompajleri će ti automatski staviti kraj stringa, a neki neće



[Ovu poruku je menjao GORSHTAK dana 23.01.2010. u 12:18 GMT+1]
 
Odgovor na temu

Andrija91
Andrija Petrovic
Ucenik
Pirot

Član broj: 219479
Poruke: 45
109.106.253.*



Profil

icon Re: [Zadatak] Prepisivanje reci obrnutim redosledom23.01.2010. u 11:17 - pre 173 meseci
EDIT: X Files
Molim Vas da zbog preglednosti i potencijalnog razrešavanja konflikata izmedju ITALIC tag-a i "indeks od 'i'", kod upisujete između predviđenih tag-ova:
[code]
/* ... */
[/code]

Hvala na razumevanju i srećan rad.

Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  char pal[1000],npal[1000];
  int i,j=0,len;
  scanf("%s",&pal);
  len=strlen(pal);
  for(i=len-1;i>=0;i--)
  {
   npal[j]=pal[i];
   j+=1;
  } 
  printf("%s",npal);
  system("PAUSE");    
  return 0;
}


Uradio sam kao sto si rekao. Sad mi ispise unetu rec u obrnutom redosledu, ali u produzetku te reci ispisuje bezvezne znakove? Jos jedno pitanje: zbog cega prijavljuje gresku kad stavim npal=pal;?
 
Odgovor na temu

Picsel
Beograd

Član broj: 39817
Poruke: 440
95.180.74.*



+7 Profil

icon Re: [Zadatak] Prepisivanje reci obrnutim redosledom23.01.2010. u 11:21 - pre 173 meseci
Citat:
Jedan mali savet, za svaki slučaj na na nov niz stavi npal[len] = '\0', neki kompajleri će ti automatski staviti kraj niza, a neki neće


To. Na kraj npal niza stavi 0 karakter. Znaci pre printf stavi npal[j]=0;
 
Odgovor na temu

Andrija91
Andrija Petrovic
Ucenik
Pirot

Član broj: 219479
Poruke: 45
109.106.253.*



Profil

icon Re: [Zadatak] Prepisivanje reci obrnutim redosledom23.01.2010. u 11:24 - pre 173 meseci
Sada sve radi. Hvala!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Prepisivanje reci obrnutim redosledom

[ Pregleda: 2115 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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