0 / 0 / 0
Регистрация: 07.01.2016
Сообщений: 11
1

Объясните в каких случаях используеться char, а в каких string?

15.01.2016, 08:16. Показов 10553. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Зачем(в каких случаях) использовать char, и char *...
Зачем(в каких случаях) использовать string...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2016, 08:16
Ответы с готовыми решениями:

В каких случаях нужно создавать динамические переменные, а в каких статические?
такой же вопрос и по массивам ! Объясните пожалуйста !

В каких случаях необходимо включать include string
В каких случаях необходимо использовать инструкцию препроцессора #include <string>? Раньше я...

<iostream> в каких случаях используется?
Что такое &lt;iostream&gt; расскажите о нем, для чего он используется.

Static обьект, в каких случаях применяется?
Всем доброго дня ! Скажите пожалуйста в каком случае применяются статические обьекты.? ...

9
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
15.01.2016, 08:39 2
string - это класс для удобного использования строк. Например можно склеивать строки с помощью знака +, с стандартными строками это делается немного сложнее.
char, char*-стандартные типы данных.
2
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
15.01.2016, 08:49 3
всегда string. Ну или если уже совсем только один символ то char. Или если точно уверен что тебе нужен именно char, а так string.

string - тот же набор из char только в людском подобии.
1
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
15.01.2016, 11:11 4
Цитата Сообщение от Dolphin0091 Посмотреть сообщение
Зачем(в каких случаях) использовать string...
string - класс с автоматическим управлением памяти, что позволяет не думать о выделении памяти под размер строки.
1
0 / 0 / 0
Регистрация: 07.01.2016
Сообщений: 11
18.01.2016, 17:01  [ТС] 5
Спасибо всем, за объяснение, мне стало понятно...
0
1371 / 594 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
18.01.2016, 17:20 6
Лучший ответ Сообщение было отмечено Dolphin0091 как решение

Решение

char - для символа. один символ

char* используют в двух вариантах
char* с new/delete ==> массив символов. Можно модифицировать этот массив.
char* без new/delete ==> массив символов, модифицировать который нельзя

string - Это класс "Строка". Имеет много собственных возможностей, которых нет у char*. Это как сильно усовершенствованный char* с new.

Если нужна строка, используй string
Если нужен массив символов используй char* или char* с new (зависит от необходимости модификаций)
Если нужен просто символ, используй char, хотя иногда еще char используют если нужно число.

массив символов отличается от строки тем, что в нем нет признака окончания. Это такая строка, у которой конец в лотерейном месте.

некоторые функции требуют как параметр char*, тогда если у тебя string S, то отдавай в функцию S.c_str();

char* - это указатель.
string - это объект класса.
1
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
18.01.2016, 18:56 7
Цитата Сообщение от daslex Посмотреть сообщение
char* без new/delete ==> массив символов, модифицировать который нельзя
Что?
C++
1
2
char a[10];
char *b=a;
Модифицируйте на здоровье.
Цитата Сообщение от daslex Посмотреть сообщение
массив символов отличается от строки тем, что в нем нет признака окончания. Это такая строка, у которой конец в лотерейном месте.
Вы, случайно, строки со строковыми литералами не путаете?
2
1371 / 594 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
18.01.2016, 19:14 8
Цитата Сообщение от avgoor Посмотреть сообщение
Вы, случайно, строки со строковыми литералами не путаете?
где я писал о char[]

о char[] не написано потому как у ТС его в тексте нет. И то, что у Вас указатель на модифицирующийся массив мало что меняет.

Но у меня имеет место неточность в выссказывании. Да, не договорил, что char* когда он не const char* может указывать на разные Си строки или массивы символов, которые в свою очередь можно менять. А не договорил, чтобы не путать человека.

И у string есть признак окончания и у Си строк есть признак окончания. Ничего не путаю. А то, что они отличаются по природе, погоды не делает.
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
18.01.2016, 19:15 9
Цитата Сообщение от daslex Посмотреть сообщение
где я писал о char[]
Тогда что сие означает?
Цитата Сообщение от avgoor Посмотреть сообщение
char* без new/delete ==> массив символов, модифицировать который нельзя
0
1371 / 594 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
18.01.2016, 19:17 10
Это означает, что я говорил о const char*, когда const неявен.
0
18.01.2016, 19:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2016, 19:17
Помогаю со студенческими работами здесь

В каких случаях требуется работа с памятью?
Приветствую всех. Интересует такой вопрос. Я знаком с основами C++. Но я читал где-то, что если...

Так в каких случаях стоит использовать наследование?
Здравствуйте, уважаемое сообщество. После прочтения &quot;C++ Coding Standards&quot; by Herb Sutter and...

Написать, в каких случаях не используется конструктор копирования
2)Написать, в каких случаях не используется конструктор копирования

В каких случаях оправданно использование локальных классов?
Здравствуйте. Вопрос: в каких случаях оправданно использование локальных классов? Или когда нужно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru