В чем разница между строкой C и строкой C ++? - PullRequest
1 голос
/ 21 сентября 2011

Я имею в виду, в чем разница строк в C и C ++?

Ответы [ 4 ]

8 голосов
/ 21 сентября 2011

C не определяет string: он имеет только «совершенно обычные массивы символов» и указатели на эти массивы;

C ++ определяет его как тип класса с несколькими свойствами и методами.

3 голосов
/ 21 сентября 2011

Я полностью согласен с ответом @pmg. Но нужно упомянуть некоторые вещи. В C программист должен быть очень осторожен, когда он работает с C-строками, потому что a) каждая C-строка должна заканчиваться нулевым символом кода; б) переполнение буфера очень просто, если размер буфера для строки слишком мал. Также в C вся работа со строками проходит через функции. Это может быть кошмар программистов. В C ++ все намного проще. Во-первых, вам не нужно заботиться об управлении памятью. Класс String выделяет дополнительную память, когда внутренний буфер становится маленьким. Во-вторых, вам не нужно заботиться о нулевом завершающем символе. Вы работаете с контейнером. В-третьих, существуют простые методы для работы со строковым классом. Например, перегруженный оператор + для конкатенации строк. Нет больше ужасных вызовов strcat (). Пусть работа со строками будет простой!

3 голосов
/ 21 сентября 2011

В C нет такого понятия / типа, как «строка».Он представлен в виде массива символов с нулевым символом в конце, например char str[256];.C ++ имеет класс string в стандартной библиотеке, который внутренне поддерживает его как массив символов и имеет много методов и свойств для манипулирования им.

0 голосов
/ 21 сентября 2011

в C ++ Строковые объекты представляют собой специальный тип контейнера, специально разработанный для работы с последовательностями символов. Класс string, определенный в строке

или в строке C, представляет собой последовательность символов, оканчивающуюся нулевым символом ('\0 '), все функции, связанные со строками, определены в string.h

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...