Reverse C-style String? - C ++

Eu quero usar ponteiros para reverter uma matriz de caracteres em C ++. Eu queria saber se há algo que eu deveria fazer diferente? Estou fazendo isso corretamente? Existe uma maneira mais eficiente de conseguir isso?

Meu pequeno programa:

int main ( )
{
    char buffer[80];

    PrintHeader();

    cout << "\nString reversal program";
    cout << "\nType in a short string of words.";
    cout << "\nI will reverse them.";
    cout << "\n:";
    cin.getline(buffer, 79);

    cout << "\nYou typed " << buffer;
    reverse (buffer);
    cout << "\nReversed: " << buffer;

    cout << endl;
    system("PAUSE");
    return 0;

}


void reverse(char* string)
{
    char* pStart, *pEnd;
    int length;
    char temp;

    length = strlen(string);

    pStart = string;
    pEnd = &string[length - 1];

    while(pStart < pEnd)
    {
        temp = *pStart;
        *pStart = *pEnd;
        *pEnd = temp;
        pStart++;
        pEnd--;
    }
}

questionAnswers(5)

yourAnswerToTheQuestion