Dopisywanie do tablicy. Prośba o opinię

0

Robię właśnie zadanie z książki Symfonia C++ Pana Grębosza z rozdziału dotyczącego wskaźników. Chodzi w nim o to, że mam dopisać na początek tablicy tekst "UWAGA: " jeśli tablica będzie zbyt mała to na samym końcu dopisze "...". I tu prośba do was. Jak myślicie dobrze to zrobiłem? Co prawda działa ale wszyscy wiedzą, że ważniejsze jest przecież jak działa.

Napisałem taki kod.

#include <iostream>
using namespace std;
//===========================================================
char *Dopisek(char *a,int siz);
//===========================================================
int main()
{
   char T[50]="Ala ma kota :D";
   char *nT=Dopisek(T,50);
   cout<<T;
}
//===========================================================
char *Dopisek(char *a,int siz)
{
    char *T=new char[siz],Dop[]="UWAGA: ";
    char *p=Dop,*poczatek=T;
    int i=0;
    while(*a)
    {
        i++;
        if(i>=siz)
        {

            *(T-1)='.';
            *(T-2)='.';
            *(T-3)='.';
            break;
        }
        if(*p)
        {
           *T=*p;
           p++;
        }
        else
        {
            *T=*a++;
        }
        T++;
    }
    *(T)=0;
    /*
    a=(a-(i-7));
    T-=i;
    while(*(a++)=*(T++));
    delete [] poczatek;
    poczatek=0;
    */
    return poczatek;
}

Zakomendowany fragment to przypadek w którym chce zmienić tablice wejściową co według mnie jest zbędne skoro funkcja ma zwracać wskaźnik na początek stworzonej tablicy. 

Z góry bardzo dziękuję za odpowiedź i ew. sugestie od bardziej doświadczonych programistów (dlaczego te wskaźniki są takie trudneee :-( ).

PS.
Jestem gotowy na ew. krytykę :D

0

Nie mam tej książki pod ręką (musisz z niej korzystać? Jest jakieś 2 dekady za współczesnym C++), ale wygląda na to, że masz zmodyfikować obecną tablicę, a nie alokować i utworzyć nową.

BTW: dla pewności, zdajesz sobie sprawę z istnienia std::string? Zadanie takie jak to prawie nigdy nie będzie potrzebne w prawdziwym kodzie.

0

(musisz z niej korzystać? Jest jakieś 2 dekady za współczesnym C++)

Nie muszę ale kiedyś ją kupiłem ale się od tego odbiłem i dopiero teraz wróciłem do tego. Chcę ją przerobić nauczyć się podstaw mimo iż zdaje sobie sprawę z tego iż rozwiązania zawarte w niej są dość stare ale na początek dobre nawet to. Po tym chce zaopatrzyć się w książkę Szkoła programowania od Praty która jest trochę bardziej aktualna. Na ten moment nie znam jeszcze dobrych i aktualnych źródeł informacji nadających się dla początkującego.

** BTW: dla pewności, zdajesz sobie sprawę z istnienia std::string? Zadanie takie jak to prawie nigdy nie będzie potrzebne w prawdziwym kodzie.**

I tak wiem, że to istnieje kiedyś z tego korzystałem ale w niewielkim stopniu a uważam, że warto zrobić coś na trudniejszy sposób aby lepiej zrozumieć zagadnienie(przynajmniej podczas nauki) i nie korzystać z prostszych rozwiązań albo odpowiedniejszych.

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