Usuwanie co drugiego znaku

0

Witam
Potrzebuje napisać program, który z podanego ciągu znaków(łańcucha) wyeliminuje co drugi znak, zrobiłem to tak na piechtę, ale muszę to jakoś inaczej zrobić:

#include <iostream>
using namespace std;
int main()
{
    cout<< "A l a m a k o t a a k o t  m a a l e"<<endl;;
    char tekst[] = "A*l*a *m*a *k*o*t*a  *k*o*t* m*a* A*l*e";
    int dlugosc = strlen(tekst);
    for (int i = 0; i < dlugosc; i ++)
    {
        if (tekst[i] == '*')
        {
            do
            {
                tekst[i] = ' ';
                i += 1;
            }
            while (tekst[i] != '*');
            tekst[i] = ' ';

        }
    }
    cout <<tekst;
    getchar();
}
 

Jeżeli mógłby ktoś mi pomóc bedę wdzieczny...
Pozdrawiam

1

<Zły kod>

for(int i=0; i<dlugoscTekstu;i++;)
   if(i%2==0)  
      tekstPrzefiltrowany[i]=tekst[i];

</Zły kod>

<dobry kod="kod"> ```c int j=0;

for(int i=0; i<dlugoscTekstu;i++;)
if(i%2==0)
{
tekstPrzefiltrowany[i]=tekst[j];
j++;
}

</Dobry kod>



gdzie tekst to tablica z tekstem, a tekst przefiltrowany to tablica z wyciętymi znakami.

EDYTA: 

Miałem błąd poprawiłem
0

Wrzucilem Twój kod w dev'a i kurcze zonk mi wyskakuje w for(int i=0; i<dlugoscTekstu;i++;) zaznaczam ze to chodzi o dobry kod...

0

Skasuj średnik przed nawiasem w forze, to bedzie OK.

0

Niestety nic to nie dało...

0

Dziwne. Mi ten kod działa:

for(int i=0; i<dlugoscTekstu;i++)
   if(i%2==0)  
   { 
      tekstPrzefiltrowany[i]=tekst[j];
      j++;
   }

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