198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
|
|||||||||||
1 | |||||||||||
Класс - преобразование массива в строку07.07.2013, 15:36. Показов 1654. Ответов 8
Метки нет (Все метки)
Кликните здесь для просмотра всего текста
Пожалуйста, что делает член функция в строках 40-47 и 49 - 55, только пожалуйста не в 3-х словах, а поподробнее, что в частности будет являться rhs Так же что именно делает закрытый конструктор в строке 98-105 И еще вопрос, подскажите как сделать что бы я мог самостоятельно вводить вводить текст после запуска программы т.е. :
Просьба, не нужно давать другой код, например strcat и т.д. мне бы хотелось решить все эти проблемы (или те которые можно) при помощи библиотеки iostream
0
|
07.07.2013, 15:36 | |
Ответы с готовыми решениями:
8
Преобразование массива в строку Преобразование массива в строку Преобразование массива в строку Json преобразование массива в строку |
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
||||||
07.07.2013, 16:40 | 2 | |||||
1) Оператор [], получает символ по заданному индексу. Если заданный индекс больше длины строки, возвращает последний символ. rhs - это индекс символа, который нужно получить.
2) Создает строку заданной длины и забивает ее нуль терминаторами. 3) Можно
1
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
|
|
07.07.2013, 17:01 [ТС] | 3 |
1. А т.е. этот оператор проверяет число внутри [], если оно больше чем у rhs, то он отнимает 1 ?
2. Примерно ясно, не ясно только str(int rhs) - int rhs откуда берется, а точнее когда я ее писал, примерно откуда берется этот int rhs я знал, сейчас подзабыл ладно, пофиг. 3. Не совсем то, что хотел, как я понимаю мы тут все же используем массив, определенной длинны, я просто хотел без длинны, что бы длинна сама определялась при работе программы при вводе с клавиатуры. А вот char buf[256], 256 это максимальная длинна, больше нельзя? например char buf[300]
0
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
07.07.2013, 17:10 | 4 |
VLK,
1) Длина - 1 это последний символ массива. 2) int rhs - это параметр, передается в конструктор при вызове. Это и есть длина строки, которая будет создана. 3) Можно больше. В любом случае ограничение при вводе будет. Ну или можно например, сперва спросить пользователя максимальную длину строки, пусть он введет, и такое ограничение и ставить, но это не лучший выбор.
1
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
|
|
07.07.2013, 17:23 [ТС] | 5 |
2-3 понятно, а вот с 1 не до конца
т.е. этот оператор: operator[] (int rhs) он работает с objOne[10] = objTwo[20] (числа разные для наглядности) длину строки он будет проверять из objOne, а вот rhs в данном случае будет являться 20 из objTwo[20], правильно?
0
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
07.07.2013, 18:24 | 6 |
Это значит, что он на позицию 10 массива objOne поместит символ с индексом 20 из массива objTwo.
Например если objOne равен "Hello world", а objTwo равен "Hello world, i study c++", то в результате операции выйдет, что objOne будет равен: "Hello worly", а ObjTwo не изменится
0
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
|
|
08.07.2013, 12:45 [ТС] | 7 |
В каком случае выполнится строчка return stroka[dlina_stroki - 1], я вот сделал программку (пишет когда какая строчка выполняется), как не крутил, ни когда не выполнялась эта строчка
Эта строчка нужна для тех случаев когда есть ошибка в программе? и служит для того, что бы массив не вышел за область видимости?
0
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
||||||
10.07.2013, 22:29 | 8 | |||||
VLK, Вообще, да. Ситуация когда кто-то пытается получить элемент из массива с индексом больше, чем всего элементов, это ошибка. И я тут исключение поставил бы, а не возврат последнего символа. Чтобы выполнилась эта строка, можно написать например:
1
|
Tulosba
|
11.07.2013, 10:27
Класс - преобразование массива в строку
#9
|
1
|
11.07.2013, 10:27 | |
Преобразование массива чисел в строку Преобразование массива строк в строку Преобразование массива целых в строку Преобразование массива чисел в строку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |