Я знаю немного C, и теперь я смотрю на С++. Я привык к массивам char для работы со строками C, но пока я смотрю на код С++, я вижу, что есть примеры, использующие как строковый тип, так и char массивы:
#include <iostream>
#include <string>
using namespace std;
int main () {
string mystr;
cout << "What 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;
}
и
#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 << " favourite movie is " << title;
return 0;
}
(оба примера из http://www.cplusplus.com)
Я предполагаю, что это широко заданный и ответивший (очевидный?) вопрос, но было бы неплохо, если бы кто-нибудь мог сказать мне, какая именно разница между этими двумя способами для работы со строками на С++ (производительность, интеграция API, способ каждый лучше,...).
Спасибо.