Diferença entre os tipos string e char [] em C ++

Eu sei um pouco C e agora estou dando uma olhada no C ++. Eu estou acostumado a char matrizes para lidar com seqüências de caracteres C, mas enquanto eu olho para o código C + + eu vejo há exemplos usando o tipo de string e char matrizes:

#include <iostream>
#include <string>
using namespace std;

int main () {
  string mystr;
  cout << "What's your name? ";
  getline (cin, mystr);
  cout << "Hello " << mystr << ".\n";
  cout << "What is your favorite team? ";
  getline (cin, mystr);
  cout << "I like " << mystr << " too!\n";
  return 0;
}

e

#include <iostream>
using namespace std;

int main () {
  char name[256], title[256];

  cout << "Enter your name: ";
  cin.getline (name,256);

  cout << "Enter your favourite movie: ";
  cin.getline (title,256);

  cout << name << "'s favourite movie is " << title;

  return 0;
}

(ambos os exemplos dehttp://www.cplusplus.com)

Eu suponho que esta é uma pergunta amplamente perguntada e respondida (óbvia?), Mas seria bom se alguém pudesse me dizer qual é exatamente a diferença entre as duas maneiras de lidar com strings em C ++ (performance, integração API, a forma como cada uma é Melhor, ...).

Obrigado.

questionAnswers(7)

yourAnswerToTheQuestion