Дилемма объединения строк (массив символов против строки)

#arrays #string #pointers #character #string-concatenation

Вопрос:

 #include lt;iostreamgt; #include lt;cstringgt;  using namespace std; int main() {  char s1[10]="abc";  char s2[10]="ert";  string s3="abc";  string s4="ert";  strcat(s1,s2);  coutlt;lt;s1lt;lt;endl; //Output abcert  strcat(s3,s4);//**Give error:** cannot convert 'std::string' {aka 'std::__cxx11::basic_stringlt;chargt;'} to 'char*'  coutlt;lt;s3; }  

Почему произошла эта ошибка и как выполнить strcat для строкового типа данных?