Операция new

Юрий, «строка со счётчиком» — это, по сути, твоя struct stringy: буфер для хранения строки и счётчик символов в буфере. Поскольку используется счётчик, то нет необходимости использовать маркер конца строки (как в С символ '\0'), следовательно в такой строке каждый символ может иметь произвольное значение. Такая структура для хранения строк использовалась ещё в Turbo Pascal от Borland и, по слухам, до сих пор используется в MS Visual Basic. В Паскале переменные типа string были представлены в памяти как байт счётчика символов за которым следовали байты с символами строки. Следовательно, длина строки ограничивалась 255 символами, а максимальный объём памяти, занимаемый переменной типа string, — 256 байт (Юникод тогда ещё не придумали).

И если есть время посмотри мой первый класс :)

Я скачал одну из первых версий, поправил ошибки, откомпилировал. По диагонали просмотрел код. Собираюсь с духом (и временем) для обстоятельного ответа. Если получится, отвечу в соотв. ветке форума.

Cranium, использовать C-функции работы со строками можно?( типа strcmp, strcpy )

использовать C-функции работы со строками можно?( типа strcmp, strcpy )

зачем? Реализуйте своё ;) можно шаблонное

Croessmah, напрасно иронизируешь.

porshe, я бы воздержался от использования строковых функций из <cstring>, поскольку эти функции подразумевают (1) наличие концевого нуля и (2) отсутствие нулевого символа в не в конце строки.

зачем? Реализуйте своё ;) можно шаблонное

Смайлик навёл на мысль.

я бы воздержался от использования строковых функций из <cstring>, поскольку эти функции подразумевают (1) наличие концевого нуля и (2) отсутствие нулевого символа в не в конце строки.

Но ведь есть функции, где можно указать количество обрабатываемых символов. Например strncpy, или memcpy. Вообще избегать функций из <cstdlib>?

porshe, читаем задание

... без использования STL и других библиотек.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.