Строки появились, когда появился STL, когда стандарт C ++ был сформирован где-то в 1990-х, если я хорошо помню.До этого (например, Turbo C ++, который все еще используется в моей школе ... к сожалению), в C ++ не было объекта 'string', поэтому все использовали массивы char.Они по-прежнему широко используются, потому что в действительности строки не содержат много нового, чего не могут делать массивы символов, и многим они не нравятся.Строки на самом деле являются нулевыми массивами символов, но они скрывают это за классом.
Одна проблема со строками состоит в том, что не все библиотечные функции поддерживают их.Например, семейство функций printf, atoi (которое происходит от 'ascii to integer', также atof и все остальные), не поддерживает строки.Кроме того, в больших проектах иногда нужно работать в C, а строки в C не существуют, только массивы символов.
Хорошая особенность строк состоит в том, что они реализованы таким образом, чтоочень легко конвертировать из и в массивы char.