Kopiowanie znaków (cstring)

0

Witam!
Przerabiam obecnie Symfonie c++ i natrafiłem na pewien problem.

Mam funkcję:

void strcpy(char cel[], char zrodlo[])
{
    for(int i = 0;;i++)
    {
        cel[i]=zrodlo[i];
        if(cel[i]==0)
        break;
    }
}

,która kopiuje tekst stringu do tablicy. Moim zadaniem jest tak ją przerobić aby kopiowała jedynie co drugi znak. Czyli mając słowo np. programista ma skopiować i wypisać tylko rgait
Prosiłbym abyście naprowadzili mnie jak to zrobić:)
Drugi mój problem.
Mam napisać funkcję, która jako argumenty przyjmie:
-adres tablicy zrodlowej,
-adres tablicy na wyrazy parzyste,
-adres tablicy na wyrazy nie patrzyste

Wiem, że aby obliczyć czy liczba jest parzysta czy nie należy wykonać %2 (modulo). Ale jak to zrobić na tablicach i jak policzyć ilość literek w słowach? To pozostaje dla mnie zagadką:)
Proszę o pomoc.

0

Ja bym ta funkcje napisal tak
void copystr(char* dest, const char* src)
{
short i = 0;
while(dest[i] = src[i++])
++i;
}

Ad.2
Stworz tablice tablic stringow i manewruj miedzy nimi.
Hezeli parzysta (bool zero = false) tab[zero][i]
Jezeli nieparzysta (zero = !zero) tab[zero][i] // kopiowanie
Koniec kopiowania znakow jest gdy znak jest rowny spacji i w tym samym momencie zmieniasz wartosc boola i kopiujesz do drugiej tablicy

0

A ja tak:

void copystr(char* dest, char* src) {
    while(*(dest++) = *(src+=2));
}
0

A bez wskaźników dało by rade?;>

0

najprościej to zamień i++ na i+=2 oraz if(cel[i]==0) na if(cel[i]==0 || cel[i+1]==0), ale szybciej jest na wskaźnikach

0

Tak rozumiem, że szybciej ale w tym rozdziale nie były omawiane wskaźniki więc chciałem to zrobić bez :) dzieki ;)

No jak chciałem bez wskaźników..a tak, że w Symfonii rozdział o Tablicach i to polecenie jest przed rozdziałem o wskaźnikach a to chyba znaczy, że trzeba poradzić sobie bez nich.

1 użytkowników online, w tym zalogowanych: 0, gości: 1