Przekopiowanie co drugą literę - wskaźniki

0

Mam taki kod:

 #include <iostream>
using namespace std;
void kopiuj(char *tablica,char *przekopiuj);
int main()
{
    char tablica[] = {"Instytut"};
    char przekopiowana_tablica[80];
    kopiuj(tablica,przekopiowana_tablica);
    cout << przekopiowana_tablica << endl;
}
/******************************/
void kopiuj(char *tablica,char *przekopiuj)
{

       for(int i = 0; i < *tablica; i++)
       {
           if(i%2==0)
           przekopiuj[i]=tablica[i];
       }

}

Ma on przekopiować co drugi znak z jednej tablicy do drugiej przy pomocy funkcji. No i to robi...ale razem ze sobą pociąga jakieś śmieci. Jak temu zapobiec?

3

These two strings walk into a bar and sit down. The bartender says, "So what'll it be?"

The first string says, "I think I'll have a beer quag fulk boorg jdkCjfdLk jk3s d#f67howe%U r89nvy~~owmc63^Dz x.xvcu"

"Please excuse my friend," the second string says, "He isn't null-terminated."

No i warunek bez sensu.

0

Warunek zaprawdę fascynujący.

0

To pokaż jak ty byś to zrobił...czego ja się mam twoim zdaniem domyśleć po twojej wypowiedzi?

0

Pomyśleć logicznie wystarczy. I czasami nie skąpić zmiennych do ułatwienia sobie pracy.

0

void kopiuj(char *tablica,char *przekopiuj)
{

   for(int i = 0; i < *tablica; i++)
   {
       if(i%2==0)
       przekopiuj[i]=tablica[i];
   }

}

  1. czyli jeśli ciąg znaków zaczyna się na A, to znaczy, że ma kopiować 65 znaków, a jeśli na spację, to 32? to jakiś sekretny kod? nie podałeś w założeniach :)
  2. if(i%2==0) przekopiuj[i]=tablica[i]; - czyli przekopiowuje co drugą literę, a tam gdzie nie przekopiowuje wsadza śmieci?

spróbuj tak:

void kopiuj(char *tablica,char *przekopiuj)
{
    for(int i = 0; i < strlen(tablica); i++)
    {
        if(i%2==0)
        {
            przekopiuj[i/2]=tablica[i];
        }
        przekopiuj[strlen(tablica)/2]=0;
    }
}

nie kompilowałem tego, może coś być źle

0

Nie wiedziałem, że w [] od tablicy mogę jakieś operacje wykonywać ^.-

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