Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.915 pregleda

Najnovija ↓

Pravljenje novog stringa od postojeceg 12.01.2016. u 23:41 · pre 131 mesec
izmenjeno 3 puta, poslednji put Mihajlo Cvetanović 13.01.2016. u 15:00
  1. Mihajlo Cvetanović13.01.2016. u 15:00zapis iz teksta poruke
  2. zokirobi13.01.2016. u 12:12zapis iz teksta poruke
  3. zokirobi13.01.2016. u 12:08zapis iz teksta poruke
#1

Pozdrav, treba mi mala pomoc oko ovog malo cudnog zadatka.
Na indexe char texta treba da prekopiram string arg ali kad se
zavrsi string arg treba da krene iz pocetka do duzine stringa text.
/*
abcdeo rstaaads
123451234512345
*/
Ovako dobijam.
A treba mi da na mestu gde je razmak ostane razmak a dvojka da krene od
sledeceg indeksa.

/*
abcdeo rstaaads
123451 2345123
*/
Ovako mi treba.
Code:

char text[30] = "abcdeo rstaaads";
char arg[30] = "12345";

int j = 0;

for (int i = 0, c = strlen(text); i < c; i++)
{
    int n = strlen(arg);
    if (isblank(text[i]))
    {
        <------------------Ovaj deo mi fali, probao sam sa continue i svasta nesto ali ne ide.
    }
    
    if (i % n == 0)
    {
        j = 0;
        
        text[i] = arg[j];
        j++;
    }
    else
    {
        text[i] = arg[j];
        j++; 
    }
}
Re: Pravljenje novog stringa od postojeceg 13.01.2016. u 15:35 · pre 131 mesec #2
Testirao sam tvoj kod, tako što sam stavio continue tamo gde si i ti rekao da si probao. Dobio sam sadržaj promenljive text "123451 23412345". Isprva sam mislio da je to dobar rezultat. Ti si samo rekao da si probao sa continue, ali da "ne ide". Ubuduće molim te bolje izdetaljiši to "ne ide". Napiši šta si očekivao, i šta si dobio, da bi bilo lakše onima koji hoće da pomognu. Elem, ono gore nije dobar rezultat, nego ovo: "123451 23451234".

Problem je što resetuješ j kad je i % n == 0, ali to nije dobar uslov. Promenljiva j treba da se vrati na 0 onda kad prilikom inkrementa postane n. Promenljiva i tu nikako ne utiče. Probaj ovako:

Code:
    if (isblank(text[i]))
    {
        continue;
    }

    text[i] = arg[j];
    j = (j + 1) % n;


Takođe, int n = strlen(arg); treba da ide van petlje. Nema potrebe da se izvršava u svakoj iteraciji.
Sviđa mi se1
Re: Pravljenje novog stringa od postojeceg 13.01.2016. u 17:32 · pre 131 mesec
izmenjeno 1 put, poslednji put X Files 13.01.2016. u 18:00
  1. X Files13.01.2016. u 18:00zapis iz teksta poruke
#3
Hvala na odgovoru i izvinjavam se sto nisam bio malo jasniji.
Ovo mi opet ne daje ono sto trazim.Ako ne stavim u tom prvom uslovu j=0, opet ne radi.
Ja necu da mi neko uradi zadatak, samo da mi objasni gde gresim :)
A ispravi me ako gresim.

Ako je i = 0 % 5(strlen) = 0 onda prvi uslov pokazuje na index broj 1 text[i ] = arg[j];
Kad je i % 5 != 0 onda na pokazuje na taj broj, 1,2,3,4 do 5
Kad dodje do 5 onda se J vrati na 0 i opet pokazuje na prvi clan i tako sve do duzine koje treba.

A zar j=(j+1)%n nije isto kao i j++ ?
Re: Pravljenje novog stringa od postojeceg 13.01.2016. u 18:19 · pre 131 mesec #4
Opet nema dovoljno preciznih podataka. Zapravo, nije mi jasno šta želiš. Da li želiš da ti objasnim gde je greška u tvom kodu? Ili želiš da ti objasnim kako to da je moje rešenje ispravno? Ili želiš ispravno rešenje, a zaključio si da moje rešenje nije ispravno? Ili nešto četvrto?

j=(j+1)%n nije isto kao i j++. Ako je j=4 šta dobiješ u prvom, a šta u drugom slučaju kao novo j?
Re: Pravljenje novog stringa od postojeceg 13.01.2016. u 23:17 · pre 131 mesec #5
U prvom slucaju je 0 a u drugom 5 . Zanima me jel tebi radilo kad si ubacio j = (j + 1) % n; i umesto cega si ga ubacio ?
Re: Pravljenje novog stringa od postojeceg 14.01.2016. u 00:15 · pre 131 mesec #6
Zamenio sam ovo:

Code:
    if (i % n == 0)
    {
        j = 0;
        
        text[i] = arg[j];
        j++;
    }
    else
    {
        text[i] = arg[j];
        j++; 
    }


ovim:

Code:
    text[i] = arg[j];
    j = (j + 1) % n;


I radilo mi je. Promenljiva j ne treba da se menja kad naiđemo da razmak, i zbog continue neće se ni promeniti, ali promenljiva i hoće, jer se inkrementira u for petlji.
Sviđa mi se1
Re: Pravljenje novog stringa od postojeceg 14.01.2016. u 00:36 · pre 131 mesec #7
Hvala na odgovorima.Shvatio sam u cemu je bio problem.Pokusacu da uradim na stari nacin ako ne uspem iskoristicu ovo tvoje.Mada je ovo tvoje resenje dosta prostije.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme