0 / 0 / 0
Регистрация: 07.01.2016
Сообщений: 11
|
|
1 | |
Объясните в каких случаях используеться char, а в каких string?15.01.2016, 08:16. Показов 10553. Ответов 9
Метки нет Все метки)
(
0
|
|
15.01.2016, 08:16 | |
Ответы с готовыми решениями:
9
<iostream> в каких случаях используется? Static обьект, в каких случаях применяется? |
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
|
|
15.01.2016, 08:49 | 3 |
всегда string. Ну или если уже совсем только один символ то char. Или если точно уверен что тебе нужен именно char, а так string.
string - тот же набор из char только в людском подобии.
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 |
![]() Решение
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 | |||||
Что?
Вы, случайно, строки со строковыми литералами не путаете?
2
|
1371 / 594 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|
18.01.2016, 19:14 | 8 |
где я писал о char[]
о char[] не написано потому как у ТС его в тексте нет. И то, что у Вас указатель на модифицирующийся массив мало что меняет. Но у меня имеет место неточность в выссказывании. Да, не договорил, что char* когда он не const char* может указывать на разные Си строки или массивы символов, которые в свою очередь можно менять. А не договорил, чтобы не путать человека. И у string есть признак окончания и у Си строк есть признак окончания. Ничего не путаю. А то, что они отличаются по природе, погоды не делает.
0
|
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
18.01.2016, 19:15 | 9 |
0
|
1371 / 594 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|
18.01.2016, 19:17 | 10 |
Это означает, что я говорил о const char*, когда const неявен.
0
|
18.01.2016, 19:17 | |
18.01.2016, 19:17 | |
Помогаю со студенческими работами здесь
10
В каких случаях требуется работа с памятью? Так в каких случаях стоит использовать наследование? Написать, в каких случаях не используется конструктор копирования
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |