Problem odwróceniem liter w słowie

0

Witam,
Próbuję odwrócić litery w słowie. Kompilator nie stwierdza błędu. Jednak po uruchomieniu programu dostaję komunikat, program przestał działać. Proszę o pomoc :)

#include <iostream>
using namespace std;

char* zamiana(char* napis);
int main(int argc, char *argv[])
{
   zamiana("Ania");
}

char* zamiana(char* napis)
{

    int licznik=0;
    int i=0;
    while(napis[i++] != 0)
    {
        licznik++;
    }

    char tmp;
    for(int i=0;i<licznik/2;i++)
    {
        tmp=napis[i];
        napis[i]=napis[licznik-1-i];
        napis[licznik-1-i]=tmp;
    }
    return napis;

}
2

Nie możesz modyfikować literałów stringów. https://dev.krzaq.cc/post/stop-assigning-string-literals-to-char-star-already/

Jeśli reszta kodu jest ok, to wystarczy zamienić

   zamiana("Ania");

na

   char arr[] = "Ania";
   zamiana(arr);

Przy czym masz std::reverse, dla sensownego użycia.

0

Działa, dziękuje :)

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