Строки в с++. Нуль терминатор. Что такое строка в с++. char c++ массив. С++ Для начинающих. Урок #60

Поделиться
HTML-код
  • Опубликовано: 7 авг 2017
  • Понравилось видео или оказалось полезным? Подпишись!
    Строки в с++ .Нуль терминатор. Что такое строка в с++. char c++ массив. С++ Для начинающих. Урок #60
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit

Комментарии • 159

  • @aodsupport777
    @aodsupport777 6 лет назад +640

    Ирония: Автор допустил нас к "hello world"у только на 60ю лекцию. :D

    • @Alex-hs8xj
      @Alex-hs8xj 5 лет назад +55

      после того как к прошлому уроку я писал функцию вставляющую в массив значение введенное с консоли по индексу в любое место массива, этот урок прям легко пошел почему-то)))

    • @TheWladberlin
      @TheWladberlin 4 года назад +15

      Не расслабляйся, я заглядывал вперед,... там охренеть! ))

    • @user-jp4qb6br7k
      @user-jp4qb6br7k 3 года назад +1

      @@Alex-hs8xj та же фигня, на удивление функции эти я сочинил довольно быстро.

  • @mykhailomorhal2181
    @mykhailomorhal2181 6 лет назад +164

    Дякую.Ви дуже добре пояснюєте.Хороші уроки)

  • @rettjaconomaili8201
    @rettjaconomaili8201 6 лет назад +90

    Дякую, це найкращий курс з С++ на youtube!!!

  • @Rosko6nii90
    @Rosko6nii90 4 года назад +26

    Просмотрел 18 минут на одном дыхании, автор ты победил!

  • @chiliton9302
    @chiliton9302 3 года назад +28

    Сергей, у Вас самые качественные ролики по программированию, спасибо большое, если бы не Вы, то я, скорее всего просто забросил программирование из-за многих недопониманий)

  • @user-dr8hn3mr1z
    @user-dr8hn3mr1z 6 лет назад +54

    Спасибо большое за уроки! Все объясняется очень доступно даже для самого начинающего. Из всего многообразия информации - у Вас получается доносить её максимально последовательно и полно.

    • @user-dr8hn3mr1z
      @user-dr8hn3mr1z 6 лет назад +2

      Не могли бы Вы сделать уроки по структурам и по файлам, а так же по работе с ними?

  • @ivanliaz
    @ivanliaz 2 месяца назад +3

    Предыдущий урок я буду носить с собой на флешке :D

  • @archiechellaut9483
    @archiechellaut9483 2 года назад +3

    Большое спасибо вам за урок и прекрасное пояснение, Сергей!

  • @sabatonbaton6105
    @sabatonbaton6105 3 года назад

    Спасибо за ваши уроки,Сергей

  • @user-ke2lb4hr7h
    @user-ke2lb4hr7h 2 года назад

    Огромное спасибо за ваш труд! Уроки очень понятные и информативные)

  • @vikont7596
    @vikont7596 6 лет назад +71

    Проорал с нуля на 6:48

    • @jellyfish6042
      @jellyfish6042 2 года назад +1

      +

    • @but9l471
      @but9l471 2 года назад +1

      ....Это не тоже самое что и ноль, вот такой....
      xDDDD

  • @ag7720
    @ag7720 Год назад

    Сергей, спасибо большое за работу! Береги себя!

    • @Empty_line
      @Empty_line Год назад

      Умаляю вас можете помочь мне? у меня один вопрос!

  • @user-hy2yd9pz5z
    @user-hy2yd9pz5z 6 лет назад +5

    Спасибо за ваши уроки)

  • @user-nw5iw5ew9z
    @user-nw5iw5ew9z 4 года назад

    Спасибо, Сергей. Очень интересно!

  • @user-bb1nk1po5e
    @user-bb1nk1po5e Год назад +5

    привет из 2023! Спасибо большое за уроки!

  • @user-zk2nk5jk3b
    @user-zk2nk5jk3b Год назад

    Спасибо, Автор, ты лучший!

  • @C2H5OHH
    @C2H5OHH 2 года назад +2

    Мой лайк 5000-й! Спасибо за урок!

  • @rostyslavklyba1746
    @rostyslavklyba1746 5 лет назад +7

    Хорошие уроки, как раз то что нужно начинающему программисту. Если бы еще по каждому уроку были домашние задания с ответами (не видео, а текст): посмотрел урок, сделал домашку по уроку на закрепление материала.... А так долго приходится искать примеры программ на закрепление пройденного материала. БОЛЬШОЕ СПАСИБО ЗА ВАШИ ВИДЕО УРОКИ!!!!

  • @user-xs7dz1zm7d
    @user-xs7dz1zm7d Год назад

    Сергей, искренне благодарен Вам за ваше старание

  • @sankarshanarama6753
    @sankarshanarama6753 Год назад

    Сергей, спасибо огромное!

  • @user-oo4zm2co6o
    @user-oo4zm2co6o 3 года назад +20

    Для тех кто обучается используя Dev-C++: что бы вызвать функцию strlen() нужно подключить заголовочный файл строчкой #include в самом начале программы.

    • @mikoaj2177
      @mikoaj2177 3 года назад

      что бы, исправь пж молодой, так же красивее

    • @user-yx4vm2ig6v
      @user-yx4vm2ig6v 2 года назад

      спасибо

    • @sogood3868
      @sogood3868 2 года назад

      Спасибо

  • @mr.warpunch6007
    @mr.warpunch6007 2 года назад +1

    Ролик класс, спасибо!

  • @user-wo1dx1rz4z
    @user-wo1dx1rz4z 5 лет назад +4

    Спасибо!

  • @user-yf1qh8nj3l
    @user-yf1qh8nj3l 5 лет назад +12

    Рисуешь как Бог!)

  • @user-op9hg1kr2b
    @user-op9hg1kr2b 3 года назад +1

    Благодарю!

  • @Ermine882
    @Ermine882 6 лет назад +5

    Спасибо

  • @SimpleCodeIT
    @SimpleCodeIT  6 лет назад +20

    #cтроки #SimpleCode #урокипрограммирования

  • @N_A_S_A_
    @N_A_S_A_ 4 месяца назад

    Просто Спасибо )

  • @justlitvik7260
    @justlitvik7260 4 года назад +2

    Просто лучший!
    Проще посмотреть твои видео, чем сидеть на парах

  • @sleepyNovember_project
    @sleepyNovember_project 3 месяца назад +1

    У std::string так же можно обращаться к элементам строки
    string word = "Hello";
    cout

    • @ikakSlohno
      @ikakSlohno 2 месяца назад

      Потому что std::string это обертка под char[] и из-за этого он работает так же как массив

    • @ikakSlohno
      @ikakSlohno 2 месяца назад

      По своей сути любая строка больше 1 символа будет массивно не зависимо от языка

    • @sleepyNovember_project
      @sleepyNovember_project 2 месяца назад

      @@ikakSlohno класс стринг это буквально один из STL-вских контейнеров, и это классно, изучил например «map» контейнер и почти со всеми более менее можешь обращаться (а вот у multi-контейнеров мб свои ньансы).
      Сегодня тупил над shrink_to_fit() методом у string, но озарило, я инициализировал по размеру нулями так:
      string st(64, '\0');
      Туда например добавлялось всего 3 символа, остальные оставались нули, shrink_to_fit их не обрезал.
      А просто надо было размер не так инициализировать а через метод «reserve»...
      Так то там похоже для std::string терминирующий ноль не особо нужен

  • @alexgaran5339
    @alexgaran5339 3 года назад +9

    К стати, а ведь strlen(условная переменная char) можно использовать вместо функции rand() по сути. Рандомно будет выводится число, покуда функция не упрется в терминатор.
    Еще раз спасибо за уроки, Сергей.

    • @user-xz2gl5mx9t
      @user-xz2gl5mx9t 7 месяцев назад

      Смысл залезать в чужую область памяти?

  • @TheWladberlin
    @TheWladberlin 4 года назад +15

    Сергей, не забывай, плиз, буковки побольше делать, совсем ни хр.. не видно, прям на самой велосипедной теме!.. ;/

  • @nazarbekbolatov5587
    @nazarbekbolatov5587 6 лет назад +1

    Рахмет

  • @user-kb6qd8rg4g
    @user-kb6qd8rg4g 4 года назад

    спасибо

  • @trimo1120
    @trimo1120 8 месяцев назад

    Так. По названию можно понять, что строка, это массив символов. Вот мой код, до начала просмотра видео:
    void print(char *arr[]) {
    for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
    cout > str; но cin.getline может и с пробелами вывести
    print(&str);
    delete[] str;
    return 0;
    }

  • @hotabmax6431
    @hotabmax6431 4 года назад

    Очень интересно узнать о интерфейсе инструкций с++. Потому что я начал впринципе с него. Не считая бейсика, делфи html и java в техникуме.

  • @spaysertm264
    @spaysertm264 5 месяцев назад +1

    17:00 "...иногда полезно делать такие вещи и смотреть что получится..."
    Я, который еще на середине видео запустил в цикле for на 999 итераций вывод половины оперативки:🙉
    Жаль, вывело немного, но один раз мне даже выскочило исключение и сказало что я залез в недоступную часть памяти

  • @user-qq2fe8fi6t
    @user-qq2fe8fi6t Месяц назад

    не знаю говорил ли кто то об этом. автор упустил одну важную вещь, если strlen не учитывает ноль терминатор, это не значит что его нет в массиве, таким образом при работе с таким массивом и использованием sizeof может быть ошибка так как \0 занимает столько же места в массиве сколько и любой другой символ(1 байт).

  • @user-dy4yv1xe3g
    @user-dy4yv1xe3g Год назад +2

    Здравствуйте. А почему функция при подсчет символов, выводит число пять? Символов пять, но массив же считается с нуля. Значит 0, 1, 2, 3, 4..

    • @ItachiUchiha-wd5kk
      @ItachiUchiha-wd5kk 4 месяца назад +1

      Искал данный комментарий
      Автор скорее всего имел в виду счет с 1
      Если же считать с нуля, считая \0, то тоже получится 5

    • @sleepyNovember_project
      @sleepyNovember_project 4 месяца назад

      Всё же правильно, символов пять
      0, 1, 2, 3, 4 это и есть пять символов, вот и выводит пять.
      То есть в нулевой элемент массива записан какой-то символ, это уже считается 1 символ, ну и т.д.
      В общем похоже strlen просто выводит на человеческом языке, а не машинном
      P.S. Это как и с указанием размера массива...
      Указываешь что некий массив будет на 3 элемента, обращаешься к ним уже с нуля "0, 1, 2"

  • @user-mn5fd4kz6o
    @user-mn5fd4kz6o 6 лет назад +11

    Оставлю это здесь
    В информатике принято нуль перечеркивать обратным слэшем

    • @TheWladberlin
      @TheWladberlin 4 года назад +3

      ага. для того чтобы отличать от буквы "О". Правда только прямым слешем, не обратным

  • @repetitor202
    @repetitor202 6 лет назад +14

    на strlen ругает. если добавить #include , то все гуд (но у вас cstring нет, и все чудненько). может компилятор VS хитер?)

    • @igor9004
      @igor9004 6 лет назад

      спасибо помогло )

    • @sultanamangeldiev1778
      @sultanamangeldiev1778 5 лет назад

      ох, спасибо, два часа мучался, думая как это сделать.

  • @user-gq9ek5ub3b
    @user-gq9ek5ub3b 4 года назад +11

    15:04 - А что случилось с первыми тремя символами? Понятно, что каким-то образом изменилось значение в соответствующих байтах памяти, но каким именно?

    • @spartv1537
      @spartv1537 3 года назад +3

      есть такие символы, которые трансформируют другие символы, скорее всего такие символы и попались.

  • @user-ye7vc6ug1l
    @user-ye7vc6ug1l 5 лет назад

    Спсб

  • @eugeneshklyarevich4905
    @eugeneshklyarevich4905 Год назад +1

    интересно, что cout по имени массива string вьіводит массив как строку.
    Если так обратиться к массиву интов, то вьіведет адрес, а если разьіменовать, то только значение, лежащее под 0м индексом

  • @karenjantv2302
    @karenjantv2302 2 года назад

    сделал дз, теперь можно и следующий видос смотреть

  • @learning4702
    @learning4702 Год назад

    "Примерно точно так-же само" - как по мне лучше и не скажешь)

    • @Empty_line
      @Empty_line Год назад

      Умаляю вас можете помочь мне? у меня один вопрос!

  • @o01122
    @o01122 2 месяца назад

    16:55 Строка это когда есть в конце /0, если его убрать то это просто массив.

  • @cnhfgjy
    @cnhfgjy Год назад +2

    Хороший урок, жаль только шрифт мелковат)

  • @AShahabov
    @AShahabov 4 года назад +1

    Получилось неожиданное, я ожидал что выполнение:
    char string[] = { 'H', 'e' };
    cout

    • @user-qu5ch6rl4f
      @user-qu5ch6rl4f 2 года назад

      Компилятор видит разницу между массивом чисел и символов. Для адреса нужен амперсанд.

    • @arsunchik
      @arsunchik Год назад

      @@user-qu5ch6rl4f спасибо

  • @SeshAlex
    @SeshAlex 6 лет назад +2

    Канкотенация строк, о ужас, заготовил на всякий случай кило антидипресантов... А в общем, как обычно, спасибо большое Сергей!

  • @musheg25
    @musheg25 3 года назад

    Здравствуйте помогите пожалуйста . Имеется массив char . В них значения меняются . Например.
    code[0] 0x01
    code[1] 0xfe
    code[2] 0x02
    code[3] 0xfd
    Надо переписать в переменную long int kod.
    Чтобы в переменную kod записалась так . 0x01fe02fd
    Как это сделать , помогите пожалуйста . Спасибо . IDE У меня CVAVR .

  • @Rozalinaag
    @Rozalinaag 4 года назад +3

    Почему никто не объяснит как работать с библиотекой стринг...

  • @xXx-ws1gb
    @xXx-ws1gb 3 года назад

    А как мне можно заменить из двух строк одинаковые слова на звёздочку?

  • @user-hy2yd9pz5z
    @user-hy2yd9pz5z 6 лет назад +2

    #нахождение подстроки в строке плис)

  • @user-zc6pd7jr3i
    @user-zc6pd7jr3i 2 года назад

    Я при по-символьном заполнении массива вручную указал размерность массива и у меня в консоль не вывело никакого лишнего мусора.

  • @ulankenzhebek145
    @ulankenzhebek145 5 лет назад +1

    Здравствуйте дорогой учитель
    Ваше видеоуроки мне очень нравится, вы все детально объясняете!!!
    Можете подсказать
    Я программирую на среде DevC++ и у меня выводит ошибка с strlen
    Почему ? Я все хорошо проверил но ошибка
    Может это из-за среды devc++ ?

    • @user-wd4js9jl5z
      @user-wd4js9jl5z 5 лет назад

      Полный текст ошибки в студию

    • @akariamano5544
      @akariamano5544 5 лет назад

      Функция strlen принадлежит не C++, а C. Возможно в этом проблема.

    • @Kokurorokuko
      @Kokurorokuko 4 года назад

      подключите cstring в начале

  • @pluto2656
    @pluto2656 6 лет назад +5

    Лайк за "карячки"

    • @reefly9838
      @reefly9838 3 года назад

      И краказябры

  • @anbur9197
    @anbur9197 Месяц назад

    Ну что, задачка на добавление элемента в любой индекс массива решена, а значит треть видеокурса успешно пройдена

  • @dmitryefimkin6550
    @dmitryefimkin6550 Год назад

    Спасибо.
    А если строкой является данные записанные в переменную из, например COM-порта? В составе пакета есть несколько полезных цифр на определенном месте и их надо записать в виде числа.
    Как это сделать?

    • @Empty_line
      @Empty_line Год назад

      Умаляю вас можете помочь мне? у меня один вопрос!

  • @kekuopex5783
    @kekuopex5783 3 года назад

    Где ввод с клавиатуры?

  • @user-dv9qy7bw1v
    @user-dv9qy7bw1v 5 лет назад

    Интересно почему когда при вводе массива char ввести больше одного пробела , то программа перестает нормально работать.
    И вообще чтобы ввести нормальную строчку из нескольких слов разделенных пробелами необходимо создать несколько массивов, которые автоматически заканчиваются когда вводишь пробел и начинается ввод нового. Почему в массив не записываются пробелы? Для ввода массива использовал cin.

    • @xlSkyLinelx
      @xlSkyLinelx 5 лет назад +7

      cin действует, как scanf в языке си, для этой функции символ пробела - это терминатор ввода данных в строку, все, что после пробела и до энтера вводится - в молоко. Так уж создали. Для обхода этого ограничения в си есть 2 функции - gets и fgets (fgets предпочтительнее, так как защищает от выстрела в ногу, не дает вводу выйти за пределы строки), в с++ - это getline(cin, имя строки). Есть еще cin.getline (имя строки, длина строки). При помощи этих функций можно вводить пробелы в строку и ввод терминируется исключительно энтером. Удачи в изучении сего прекрасного языка программирования :)

  • @gray3799
    @gray3799 2 года назад

    2:54 начало

  • @Mr_Smith_1
    @Mr_Smith_1 3 месяца назад +2

    Привет из 2024

  • @kirillpukhov2004
    @kirillpukhov2004 5 лет назад +6

    "АСКИ" - это таблица ASCII?

  • @lanasvet1304
    @lanasvet1304 2 года назад

    Подскажите, а как в С++ записать что строка состоит из цифры 3 и следующих за ней 57 цифр 5?

  • @twidgerry
    @twidgerry 3 года назад +2

    у вас есть дискорт канал для консультаций? Привет из 2020

    • @morrigan_ghost
      @morrigan_ghost 3 года назад +1

      а не много ты за бесплатно хочешь?

    • @twidgerry
      @twidgerry 3 года назад

      @@morrigan_ghost ну мало ли, сообщество единомышленников для решения определённых вопросов )

  • @saharvkusni6209
    @saharvkusni6209 6 лет назад +1

    Расскажи с чего начал путь программиста

    • @father1855
      @father1855 6 лет назад

      Было уже, ищи на канале.

  • @Viamsupervadetvadens
    @Viamsupervadetvadens 6 лет назад

    up

  • @theyandwe9047
    @theyandwe9047 5 лет назад +2

    Не путать количество символов с количеством байтов в слове "Hello": символов 5, байтов 6.

    • @TheWladberlin
      @TheWladberlin 4 года назад +1

      Не в слове, а в выделенной памяти под массив. Каждый символ = 1байт, в том числе и '\0'

  • @deniskozak5997
    @deniskozak5997 6 лет назад

    у меня вопрос, каким образом можно создать строку, а уже потом инициализировать ее, как мы это делали с переменными.
    например.
    int a;
    a = 15;
    не так char string[ ];
    string = "Hello World";
    и не так не получается
    char string[];
    string[] = "Hello World";

    • @davidblbulyan3077
      @davidblbulyan3077 6 лет назад +6

      Вот так можешь:
      char *string = new char[255];
      string = "Привет!";
      не забудь удалять string
      делается это так:
      delete [] string;

    • @user-rm3eu6we8c
      @user-rm3eu6we8c 6 лет назад +4

      обязательно посмотри уроки #25 и #26 т.к. ты изначально неправильно объявляешь массив: char string[ ];
      если ты хочешь сперва объявить массив, а инициализировать позже - тебе при объявлении нужно обязательно указать количество элементов. либо использовать динамический массив, а не статический,)

    • @fillmalyshev9377
      @fillmalyshev9377 6 лет назад +1

      char string[12]; string = "Hello World"

    • @user-qu5ch6rl4f
      @user-qu5ch6rl4f 2 года назад

      Инициализировать неизвестную строку (массив) сложно - компилятор не знает сколько памяти под нее выделять.
      А с переменными все просто - независимо от значения ячейка занимает известное число байт.

  • @muhammadeshonjonov8758
    @muhammadeshonjonov8758 3 года назад

    99 % видео это лекция !!!!!!!!!

  • @ulankenzhebek145
    @ulankenzhebek145 5 лет назад +1

    Хотел установить Visual Studio, но нетбук слабенький и не тянет(

    • @yurym7304
      @yurym7304 4 года назад

      Можно старый VS поставить и радоваться жизни

  • @qa337
    @qa337 3 года назад +1

    *Ставьте скорость х2 и все норм.*

  • @captain_ua
    @captain_ua 2 года назад

    ДАЙТЕ ПОЖАЛУЙСТА iosteam! No such file directory!

  • @ubermenschliche1319
    @ubermenschliche1319 4 года назад +5

    6:12 *играет заглавная тема Терминатор*

  • @michaelbondarev8788
    @michaelbondarev8788 4 года назад +2

    голову сломал думая как 2 символа '\0' влезло в ячейку ЧАР, пока не понял что это просто эскейп последовательность

    • @oleganishe
      @oleganishe 4 года назад

      Аналогичная ситуация. Спасибо за подсказку.)

  • @user-ju4ze4hp1e
    @user-ju4ze4hp1e 2 года назад +2

    14:13 Это же всё время называлось "кракозябрами", что за "непонятные символы" вдруг?

    • @user-qu5ch6rl4f
      @user-qu5ch6rl4f 2 года назад

      Автор случайно делитнул библиотеку кракозябр, теперь все называется "непонятные символы".

  • @uninstaller1899
    @uninstaller1899 3 года назад +1

    ничего не понимаю: зачем нужен терминирующий ноль если есть размер массива, который равен длине строки

    • @user-qu5ch6rl4f
      @user-qu5ch6rl4f 2 года назад

      Массив из слов разной длины собирается через эти терминаторы.
      Плюс : особенность более низкоуровневых языков - даже очевидное на первый взгляд нужно прописывать руками.

  • @user-vi4db7qp5m
    @user-vi4db7qp5m 6 лет назад

    А почему компилятор пропускает "-" заместо оператора присваивания "=" в 13-й строке кода. Разве это не должно вызвать ошибку?

  • @biscvie
    @biscvie Год назад

    +

  • @useruser7176
    @useruser7176 3 года назад

    а как можно выводить русские символы?

    • @meteor5567
      @meteor5567 3 года назад +1

      почитай о setlocale в инете

  • @Andrsen86
    @Andrsen86 2 года назад

    Что хранится в не инициализированной строке?

  • @Dogstater
    @Dogstater 3 года назад

    айл би бэк

  • @tralex3684
    @tralex3684 5 лет назад

    Hello

  • @user-wf5cs3dc9q
    @user-wf5cs3dc9q 3 года назад

    Вывести последние буквы всех слов введенной строки ( Кто может помочь с этим кодом?)

    • @Sylvadorr
      @Sylvadorr 3 года назад

      Дай угадаю, Яндекс практикум?))

    • @user-wf5cs3dc9q
      @user-wf5cs3dc9q 3 года назад

      @@Sylvadorr Не, одно задание из курсовой)

    • @user-wf5cs3dc9q
      @user-wf5cs3dc9q 3 года назад

      @@Sylvadorr а у тебя есть ответ?)

  • @TNT_ENTERTAINMENT_inc
    @TNT_ENTERTAINMENT_inc 8 месяцев назад

    Аски коды.

  • @janetteslow9812
    @janetteslow9812 5 лет назад

    lfey

  • @user-rx4tn7xu9r
    @user-rx4tn7xu9r 2 года назад

    Самое интересное, что в Linux если детерминирующий ноль не указать, то он все равно не покажет лишних символов. Интересно, с чем это связано? не ужели это настолько хорошее ядро по сравнению с тупым NT?

  • @ebawer3892
    @ebawer3892 6 лет назад

    Можно же вместо \0 писать NULL ???

    • @BadDanFeeds
      @BadDanFeeds 5 лет назад +3

      Нет. \0 - это служебный символ с ASCII кодом 0, это не цифра. А NULL - это синоним цифры 0, которая является литералом с ASCII кодом 48. Не путай.

  • @Mishanya00
    @Mishanya00 9 месяцев назад

    Не называйте свою переменную string. А то после не сможете объявлять строки класса string

  • @pashakey4611
    @pashakey4611 5 лет назад

    Я так понял,что в последний версии студии,символ " \0" пишется автоматически,достаточно оставить пустое место в конце массива,а при написании " \0",он, наоборот, исчезает,и появляется мусор.

  • @mcdestis1329
    @mcdestis1329 2 года назад

    ахахах ноль терминатор

  • @KLiPSoN_YT
    @KLiPSoN_YT 3 года назад

    Сколько воды, уснуть можно быстрее, чем дойти до момента объяснения...

  • @eterniumsoul
    @eterniumsoul 6 лет назад +10

    Спасибо !

  • @outcast-cr5yy
    @outcast-cr5yy 6 лет назад +2

    Спасибо

  • @Blendershick
    @Blendershick 3 года назад

    Спасибо!

  • @user-kc8ec6vl9d
    @user-kc8ec6vl9d 3 года назад

    Спасибо !

  • @user-dx8xp3im8s
    @user-dx8xp3im8s 4 года назад

    Спасибо

  • @gagikarakelyan6014
    @gagikarakelyan6014 4 года назад

    Спасибо