Praca na Tablicach typu char.

0

Witam przede wsztstkicm najpierw prosze o kod : http://wklej.to/RVEdM

I problem mam nastepujacy:

Dlaczego po wyjsciu z petli (for(g; g<doilu; g++) i for(h; h<doilu; h++)) moja tablica nie potrafi przypisac elementu spacji po zakonczonym stringu...

a druga sprawa dlaczego jak raz przypisze cos do danej tablicy to dalej nie potrafi juz nic doniej przypisac i z calego tego zdania przepisuje mi tak:

Nieparzyste wyrazy: Dzisiaj

Parzyste wyrazy: Po

Debuger pokazuje ze niby przypisuje sobie a jednak jak proboje je wyswietil to niedziala moglby mi ktos jakies namiary dac jak mam sie zato zabrac, bardzo prosze i bylbym wdzieczny

pozdrawiam,
Fivix

1

Problem polega na tym, że napisałeś tą funkcje maksymalnie ją komplikując.

void podziel(char *dane, char *celparzyste, char *celnparzyste)
{
    for(; ;) {
         for(; *dane != 0 && *dane !=' '; dane++) 
              *celnparzyste++ = *dane;
         *celnparzyste++ = *dane; //dopisz końcowe 0 lub spację
         if (*dane++ == 0)
               break;

         for(; *dane !=0 && *dane !=' '; dane++) 
              *celparzyste++ = *dane;
         *celparzyste++ = *dane; //dopisz końcowe 0 lub spację
         if (*dane++ == 0)
               break;
    }
}
0

dzieki za pomoc, jako ze sie ucze i jeszcze neimam pojecia o wskaznikach to jednak juz widze ze sa bardzo przydatne..

0
  1. nie wysyłaj wiadomości na priva z takich błahych powodów
  2. wskaźniki nie mają tu znaczenia, ty po prostu nie przemyślałeś sprawy. Tu masz wersje bez wskaźników:
void podziel(char dane[], char celparzyste[], char celnparzyste[])
{
    int i = 0, even = 0, odd = 0;
    for(; ;) {
         for(; dane[i] != 0 && dane[i] !=' '; i++) 
              celnparzyste[odd++] = dane[i];
         celnparzyste[odd++] = dane[i]; //dopisz końcowe 0 lub spację
         if (dane[i] == 0)
               break;
         i++;

         for(; dane[i] != 0 && dane[i] !=' '; i++) 
              celparzyste[even++] = dane[i];
         celparzyste[even++] = dane[i]; //dopisz końcowe 0 lub spację
         if (dane[i] == 0)
               break;
         i++;
    }
}

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