fatorial de grandes números com strings em c ++

Eu estou fazendo um programa fatorial com seqüências de caracteres porque eu preciso do fatorial de números maiores que 250

Eu pretendo com:

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

    }

}

Mas o problema é que atoi não funciona. Como posso converter minha string em um inteiro.

E o mais importante Eu quero saber se o programa deste modo trabalhará com o fatorial de 400 por exemplo?

questionAnswers(8)

yourAnswerToTheQuestion