silnia dużych liczb z łańcuchami w c ++

Robię program czynnikowy z łańcuchami, ponieważ potrzebuję silni z Liczb większych niż 250

Zamierzam:

string factorial(int n){
    string fact="1";
    for(int i=2; i<=n; i++){
        b=atoi(fact)*n;

    }

}

Ale problem polega na tym, że atoi nie działa. Jak mogę przekonwertować mój ciąg w liczbę całkowitą.

I najważniejsze Czy chcę wiedzieć, czy program w ten sposób działa na przykład z silnią 400?

questionAnswers(8)

yourAnswerToTheQuestion