Tutaj:
std::string array[dlugosc]={napis};
stworzyłeś tablice stringow o dlugosci napis.length(), w której zerowy element to string napis a reszta to puste stringi.
W tej petli wypisujesz zatem puste stringi i na koniec string napis.
for(int i=dlugosc-1; i>=0; i--) //Proces zamiany np. 0001 na 1000
{
std::cout << array[i];
} //zamiana nie udana - wyswietla nadal 0001
Jesli chcesz wypisać string od konca to po prostu wypisuj napis[i].
Tutaj rozne sposoby na odwrocenie stringa: https://www.geeksforgeeks.org/reverse-a-string-in-c-cpp-different-methods/