Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
#1

Стоит ли изучить программирование в стиле С? - C++

14.05.2014, 10:00. Просмотров 1122. Ответов 33
Метки нет (Все метки)

Стоит ли изучит программирование в стиле С?
В книге написано про строки в стиле С и настоятельно рекомендуется не использовать их при программирование. Так как я не хочу нагрузит себя не нужной информацией ( ибо за краткий срок много чего надо изучит), возникает вопрос.
На столько актуальны сроки в стиле С? Надо ли изучать их или можно пропустит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2014, 10:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стоит ли изучить программирование в стиле С? (C++):

Как школьнику изучить программирование? - C++
Самостоятельно изучила основы С и С++. Как продолжить изучение, если ты школьник? Идти на дорогостоящие курсы нет денег.

Что стоит изучить, что перейти от консольных приложений к оконным - C++
Здравствуйте, изучал С/С++ по книге Харви Дейтела "Как программировать на С". Посоветуйте, пожалуйста, что стоит изучить, что перейти от...

Какие книги лучше всего изучить чтобы хорошо изучить с++ - C++
Хотелось бы открыть тему, либо если она уже есть подскажите ссылку. Хочу собрать список книг чтобы изучить профессионально с++, если...

Gnu Octave написана на C++, хочу изучить программирование для Octave, с чего начать - C++
GNU Octave — свободная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня. Написан на Си++. ...

Стоит ли читать "Программирование. Принципы и практика использования C++" от Страуструпа - C++
Доброго времени суток. Сейчас лето, сессия позади, но не хочется проводить время впустую, а заняться более активным изучением C++. На...

Низкоуровневость в c++. Стоит или не стоит его учить? - C++
Приветствую! Захотел выучить язык c++, но знакомый сказал, что у него есть стремление к низкоуровневости! Подскажите пожалуйста, можно...

33
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
14.05.2014, 10:14 #2
Цитата Сообщение от Altair42 Посмотреть сообщение
я не хочу нагрузит себя не нужной информацией ... Надо ли изучать их или можно пропустит?
Конечно можно пропустить. Без лишней информации.
0
Убежденный
Ушел с форума
Эксперт С++
15689 / 7199 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
14.05.2014, 21:21 #3
Цитата Сообщение от Altair42 Посмотреть сообщение
На столько актуальны сроки в стиле С? Надо ли изучать их или можно пропустит?
А что там изучать ? Вот строка из символов, вот завершающий ноль в конце.
Если вы принимаете строку в N символов, то должны выделить N+1 места в
буфере, чтобы не было переполнения. Если память под буфер выделяется в
динамической памяти, за ней нужно следить и освобождать, когда она
больше не нужна. Вот и вся наука.
0
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,879
Записей в блоге: 3
Завершенные тесты: 1
14.05.2014, 21:21 #4
Цитата Сообщение от Убежденный Посмотреть сообщение
Вот и вся наука.
другими словами обыкновенная работа с массивом, не более
0
oxyfat
66 / 63 / 11
Регистрация: 01.05.2014
Сообщений: 247
14.05.2014, 21:32 #5
Приветствую!
( "Убеждённому" - Большое Спасибо ( за - ? Не знаю, но Полезные "Вещи" открылись ! )
- с моей точки зрения: - Если Вы задумываетесь о программировании - только с Точки зрения Друзей;
- ( - ух, ну-надо-же...) - прочее...
-- Ни надо.
--- (идите варить Метал - проку будет больше )
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
15.05.2014, 02:44  [ТС] #6
Убежденный, советую к прочтению прежде чем ответит на такой вопрос.

Язык программирования C ++_Вводный курс Стенли Б. Липпман.
Стр 154.
Символная строка в стиле С.

Это очень отличается от обычного массива которого вы описали. (Кроме нолика)

Добавлено через 2 минуты
В принципе строка в стиле С тот же самый массив но в языке С. Хотя бы посмотрите раздел где создана тема.
0
RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 138
15.05.2014, 02:52 #7
Altair42, А чем вам не устраивает ответ Убежденный, все правильно он написал: строка в стиле С это обычный массив лишь с нулем-терминатором в конце.
0
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
15.05.2014, 04:54 #8
Убежденный, вот так лихо взяли и послали Вас в книжки для начинаюших)
Цитата Сообщение от Altair42 Посмотреть сообщение
Это очень отличается от обычного массива
И чем же? Я даже не поленился - книжку открыл. Там написано то же самое, только с примерами и занимает 5 страниц.
0
Убежденный
Ушел с форума
Эксперт С++
15689 / 7199 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
15.05.2014, 19:52 #9
Цитата Сообщение от Altair42 Посмотреть сообщение
Это очень отличается от обычного массива которого вы описали.
Назовите хотя бы одно принципиальное отличие.
На мой взгляд, C-строка отличается от массива примерно так же,
как std::string от std::vector<T_Char>. То есть, практичеки никак.
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
15.05.2014, 21:23 #10
Цитата Сообщение от Убежденный Посмотреть сообщение
практичеки, никак
Причем, это сделано намеренно, чтобы избежать накладных расходов, связанных с поддержанием отдельного строкового типа. Никаких "строк" в C нет, только "джентльменская договоренность" о специальным образом сформированных символьных массивах.
0
Evg
Эксперт CАвтор FAQ
18030 / 6262 / 427
Регистрация: 30.03.2009
Сообщений: 17,205
Записей в блоге: 27
15.05.2014, 23:25 #11
Цитата Сообщение от gazlan Посмотреть сообщение
только "джентльменская договоренность"
Договорённость вовсе не джентельменская, а закреплённая в стандарте в той части, где речь идёт о стандартных функциях (без которых строка как понятие особого смысла не имеет)

Добавлено через 36 секунд
А ещё в той части, где описана семантика строкового литерала
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
16.05.2014, 12:29  [ТС] #12
Цитата Сообщение от 0x10 Посмотреть сообщение
И чем же? Я даже не поленился - книжку открыл. Там написано то же самое, только с примерами и занимает 5 страниц.
Разница в том что создание и работа с обычным массивом куда проще чем работа с строкой в стиле C. Я так понял чтоб работать с сторокой в стиле С надо знать как это делается на языке С. По этому и создал тему. Важно ли учиться строит массивы и работать с ними в языке С?
Я прочел эти 5 страницы и понял только одно. Без знание языка С ( как минимум того что относится к массивам) мне не как не понят как работа с строкой в стиле С. ( Читать код одно но создать его и работать с ним, это уже совсем другое.)Если С++ дает возможность работать с массивами не используя С то я не вижу смысла изучать их на языке С. Но так как я "начинаю первые шаги в этом мире". Мне надо знать я прав или нет.

Убежденный, По вашему класс string не отличается от класса vector? Их соединяет только то что они оба хранит данные как массив и позволяют работать с ними лучше чем массив позволяет. Но как бы string не может работать как vector - со всеми возможными типами. ( Или есть способ чтоб заставит string работать как vector без всякого там гемороя?)

Добавлено через 4 минуты
Прошу вас не превратит тему в "священные войны". Мне надо только знать.

Обязательно изучать строки в стиле С? Или хватит знаний массива?
Если я начну изучать строки в стиле С мне придется изучать язык С. Чтобы полностью понят что к чему.
0
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 169
16.05.2014, 13:13 #13
std::vector<T_Char>. Не обладает свойством copy on write. Если на у нас несколько строк создано через =, то они указывают все на один объект. При изменении строки через одну из переменных создаётся копия не меняющая другие переменные. При изменении строки при единственном хозяине копия не создаётся. Такого механизма нет в vector так, что это не одно и тоже. Хотя одно из полей string действительно vector из шаблонного basicString насколько помню, который можно забить char или wchar.

Добавлено через 4 минуты
Обязательно изучать строки в стиле С? Или хватит знаний массива?
Если я начну изучать строки в стиле С мне придется изучать язык С. Чтобы полностью понят что к чему. Нету в Си строк, в том смысле, что это понятие полностью искусственное и сделано из последовательности char с последним равным 0. И то, что надо знать кроме этого может быть несколько функций для работы с такими последовательностями char, чтобы не писать свои велосипеды.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
16.05.2014, 14:30  [ТС] #14
Archi0, друг мой мне нужен ответ да или нет

Вы меня еще больше путаете.
Есть в Си строк, массивов или что там еще, мне не интересно. В книге по которому я учу С++ строкам в стиле С уделено достаточно внимание но с указанием - не использовать. Я прочел все что там написано на счет этого понял только то что используемые ( команды или что еще там) с языка Си. А значит чтоб понят ка работает строки в стиле С надо знать как работают эти команды.
То что они по сути массив я знаю.
В принципе строка в стиле С тот же самый массив но в языке С. Хотя бы посмотрите раздел где создана тема.
Может и не языке С но там присудствуют компоненты Си которых я не понимаю.

Цитата Сообщение от Archi0 Посмотреть сообщение
...Нету в Си строк, в том смысле, что это понятие полностью искусственное и сделано из последовательности char с последним равным 0. И то, что надо знать кроме этого может быть несколько функций для работы с такими последовательностями char, чтобы не писать свои велосипеды.
Цитирую из книги (Липпман ).
"Стандартная библиотека С предоставляет набор функций для работы с строками в стиле С"
Есть вариант этой библиотеки для С++ - cstring. Но так как сама библиотека на С не имею понятие как можно использовать эту библиотеку без знаний С ( в принципе можно но при использование будет слишком много ошибок и недопонимание которых не смогу компенсировать не зная С.).

Добавлено через 21 минуту
Мне только надо знать. На сколько актуальны сегодня строки в стиле С. Ибо использовать цикл чтоб копировать один массив другому мне проще чем запомнит strcpy () Я так понял что тут 2 слово string + copy. Только что заметил. Но не уверен что я прав. Зная что там смесь 2 слов запомнит strcpy() проще чем запомнит какой та набор не связанных букв ( прежде так его видел). И сколько же таких "наборов букв" в библиотеке cstring? С моим то пониманием вещей можно заблудится среди этих наборов букв. Мне пришлось 3 раза посмотреть в книгу чтоб написать strcpy() пока не понял что там 2 слово. Теперь я просто вспоминаю string + copy, ибо понимаю что означают эти слова(это к тому то я не могу запомнит как есть мне надо понят как сделано).
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.05.2014, 14:31 #15
Цитата Сообщение от Altair42 Посмотреть сообщение
Прошу вас не превратит тему в "священные войны". Мне надо только знать.
Вы сами ее и превращаете в таковую, раздувая из мухи слона.
Цитата Сообщение от Altair42 Посмотреть сообщение
Стоит ли изучить программирование в стиле С?
Да.
0
16.05.2014, 14:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 14:31
Привет! Вот еще темы с ответами:

Хочу изучить C++ - C++
Начал читать книгу С++ на начинающих можно сказать чайников. Не могу скомпилировать. Хотел бы найти знающего человека ля помощи и...

решил изучить с++ - C++
всем привет, решил начать изучать с++, скачал MSVC++ 2010 express, какую литературу вы посоветуете для изучения данного языка?

2 изучить работу с массивом - C++
Нам задали две лабораторные по С++ , с которыми у меня возникли трудности Вторая состоит из двух частей(задание прилоено ниже в лаб...

Cтоит ли после изучения Си++ изучить Си - C++
Подскажите, стоит ли после изучения Си++ изучить Си? Ведь в Си++ поддерживаются все сишные команды (например, alloc, realloc и т.д.) Но в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru