This repository has been archived on 2023-05-13. You can view files and clone it, but cannot push or open issues or pull requests.
mipt_cpp/seminar02_encapsulation/classroom_tasks/code/2string/00string.cpp
2022-09-14 19:05:27 +03:00

45 lines
2.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Создадим свою строку
Один из самых главных недостатков языка C это работа со строками.
Строки в языке C это просто массивы элементов типа char
char str[100]; или char* p = malloc(100);
В языке C работать со строками очень неудобно по многим причинам:
- Нужно постоянно следить за тем, чтобы строка умещалась в памяти, которая под нею выделена.
- Строку можно выделить на Стеке, используя обычный массив, и тогда её вместимость нельзя будет увеличить,
а можно выделить в Куче, но тогда придётся самостоятельно выделять и освобождать память
и следить, чтобы не произошли утечки памяти.
- Строки нельзя просто копировать, сравнивать, складывать и т. д. Для этого нужно использовать
специальные функции типа strcpy и другие функции из библиотеки <string.h>.
Создадим же удобный класс строки
Такой чтобы можно было удобно создавать строки, приравнивать, складывать и сравнивать.
Не заботясь о выделении/удалении памяти, и о том, что строка помещается в выделенную память.
Чтобы можно было писать вот такой код:
String a = "Cat";
String b = "Dog";
cout << a << " " << b << endl;
String c = "Mouse";
c = a + b;
c += "Bear";
if (c == "CatDogBear")
cout << "Yes" << endl;
c = a;
cout << c << endl;
(String в переводе с английского это Строка)
*/
int main() {}