Символьные массивы, в качестве строк:
text[ ] = "Any text"
text[ ] = 't', 'e','x','t','\0'
Или же объекты string:
string text = "Any text"
Я использую объекты string, ибо проще использовать, а также можно их использовать как символьный массив (например, для доступа к отдельным символам).
Но в учебнике большинство примеров почему-то написаны с применением строк - символьных массивов, в стиле С.
Есть ли какая-нибудь объективная причина для использования строк - массивов символов?
Или я могу не беспокоиться, и дальше использовать класс string?
Другие языки программирования и технологии
Строки какого типа предпочтительнее использовать в С++?
Тоже постараюсь объяснить, если конечно ...
Конечно применение string - намного легче и почти можно ни о чём не думать!
Но вот какая здесь засада! Если не зная основ работы с символьными массивами, Вы научитесь работать только со string, и тогда могут возникнуть сложности на string (не спрашивайте какие, просто поверьте - могут) и вариант с char окажется эффективней. Кто-то, знающий char и string, просто окажется конкурентноспособней Вас, ну и отсюда все последующие выводы.
А похожих примеров из других тем - куча, не даром многие знающие здесь смеются или даже иногда издеваются (сам такой, каюсь) над глупыми вопросами и т. п.
Суть такова: используйте string, но попрактиковаться с char тоже бы очень не помешало!
Но лично я сам string пытаюсь избегать по возможности!
Конечно применение string - намного легче и почти можно ни о чём не думать!
Но вот какая здесь засада! Если не зная основ работы с символьными массивами, Вы научитесь работать только со string, и тогда могут возникнуть сложности на string (не спрашивайте какие, просто поверьте - могут) и вариант с char окажется эффективней. Кто-то, знающий char и string, просто окажется конкурентноспособней Вас, ну и отсюда все последующие выводы.
А похожих примеров из других тем - куча, не даром многие знающие здесь смеются или даже иногда издеваются (сам такой, каюсь) над глупыми вопросами и т. п.
Суть такова: используйте string, но попрактиковаться с char тоже бы очень не помешало!
Но лично я сам string пытаюсь избегать по возможности!
Сколько лет учебникам?
Учебники учитывают все операционки и стандарты, но не всегда успевают за стандартами.
(я Сишник и мне удобнее массивы чаров. тем кто Плюсоиды удобнее стринги (в Сях их просто нет, они появились в плюсах) - тут уж "кому что привычнее")
Учебники учитывают все операционки и стандарты, но не всегда успевают за стандартами.
(я Сишник и мне удобнее массивы чаров. тем кто Плюсоиды удобнее стринги (в Сях их просто нет, они появились в плюсах) - тут уж "кому что привычнее")
Используйте дальше string. Так как использование символьного массива может привести как минимум к уязвимостям. Да и string больше подходит для ООП
Учебники, как правило для начинающих, пишутся изначально с позиции С, т. е. структурного программирования, ибо нетронутому мозгу лучше подавать алгоритмику, не отвлекаясь на абстракции вроде ООП, да и универсальность - зачем писать два разных учебника, подходящих для С или С++? Ко всему, это дает прочувствовать операции на довольно низком уровне. Как, по вашему, объяснить человеку, не знакомому с char-строками и существованием нуль-символа, почему слово из 3х символов (ANSII) занимает 4 байта?
Однозначно, std::string тут лидер (и его вариации для других библиотек, вроде CString для MFC, QString для Qt и т. п.).
Однозначно, std::string тут лидер (и его вариации для других библиотек, вроде CString для MFC, QString для Qt и т. п.).
Класс string появился в библиотеке std. Уже давно все компиляторы имеют эту библиотеку. В первых версиях компиляторов ее не было. Используйте класс string как вам удобнее, никаких проблем не будет, если только это не компилятор 80-х годов.
Похожие вопросы
- Какой тип каркаса использовать на сайте?
- Вес может ли быть дробным числом? Какой тип данных использовать для этого int или float или double ?
- FASM. Замена символов в строке, используя подпрограммы.
- Как удалить символ из переменной типа строки в PHP?
- Как 2 div можно поставить в одну строку не используя float?
- Как инициализировать поля класса типа int из строки
- QBASIC сформировать мосив состоящая С М-строк,и М-столбцов
- паскаль. нужно считать строку длинной 100 000 символов. тип string до 255. кокой тип подойдет в этом случае???
- ассемблер, проверка длины строки
- Напишите программу для С++, которая заменяет в символьной строке все буквы a на буквы b, буквы A на буквы B ...