Cześć! Mam problem z poniższym zadaniem:
Napisać i przetestować w programie własną funkcję void cp(char *str2, char *str1) kopiującą wszystkie znaki (zaczynające się od końca do początku) z wskazywanego przez str1 do obszaru wskazywanego przez str2. Przy testowaniu należy zadbać o to, żeby pod adresem wskazywanym przez str2 była zarezerwowana odpowiednia ilość pamięci. Zastosowanie funkcji cp mogłoby wyglądać następująco:
#include <iostream>
using namespace std;
void cp(char *str2, char *str1){
int i = 0;
while(*(str1+i) != '\0'){
i++;
}
i--;była zarezerwowana odpowiednia ilość pamięci
int j = 0;
while(*(str2+j) != '\0'){
if(i >= 0)
*(str2+j++) = *(str1+i--);
else
*(str2+j++) = ' ';
}
}
int main(int argc, char *argv[]){
char *str1 = "ppC",
str2[6] = "Witaj";
cout << str2 << endl; // Witaj
cp(str2,str1);
cout << str2 << endl; // Cpp
cp(str2,"CJP");
cout << str2 << endl; // Prg2
return 0;
}
Nie wiem jak rezerwować odpowiednia ilość pamięci do tablicy:(
Przeciez rozmiaru tablicy nie mogę zmienić:(
W tym wypadku wszystko będzie ok ale co się stanie jak podamy wieksza tablice od str2.
Wyswietli się nam tylko 5 ostatnich liter.