![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Igor_K |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 4.2.2008 Где: Kyiv Репутация: нет Всего: нет |
Доброго времени суток!
Собственно задача. Нужно небольшую программу перевести под..... Turbo C++ 3.0. И у меня возникли некоторые проблемы с строками. Там я использовал string и все было ок, но тут нужно заменить все строки на char и у меня тут возникли проблемы :( Нужно создать массив char`ов Было: std::string el[20]; Нужно создать массив из 20 елементов типа char. Желательно чтобы char был не фиксированного размера. Как создать такое? Ну или хотябы фиксированной длины... но у меня не выходит. Вопрос №2. Как обрезать строку char??? Я имею ввиду аналог метода substr объекта string. Есть ли аналог ? Всем спасибо большое заранее!!!!! |
|||
|
||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Это вещи "немного" разные ![]() Было: 20 строк произвольной длины. Нужно: строку на 20(точнее 19) символов ![]() Не поверишь: char str[20]; ![]()
Обрезать можно так: str[i] = '\0';, где i - номер символа по который нужно обрезать, но substr не обрезает - он создаёт новую строку соответствующую заданой подстроке. Аналогичное можно проделать так:
1. Модифицирует переданную ей строку! 2. Вернёт указатель на ту же строку(просто сдвинутый). Это сообщение отредактировал(а) archimed7592 - 8.4.2008, 22:10 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||
|
|||||||
Igor_K |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 4.2.2008 Где: Kyiv Репутация: нет Всего: нет |
archimed7592, спасибо большое за обьяснение!!!!
![]() с 2 заданием понял, немного подправлю под себя и будет ок. но 1 задания...
Не, немного не то. Так же я создам массив char из 19 символов. так? Мне нужно массив строк. То есть , например массив имеет 20 елементов, каждый елемент - тоже массив char . Ну похоже это на двумерный массив. Но как его заполнять??? Например код:
не работает. Вы не знаете как правильно сделать? |
||||
|
|||||
creatorcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 1 Всего: 4 |
||||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Так присваивать нельзя... Так можно только инициализировать. "Присваивать" можно было бы так как показал creatorcode... либо так:
Но, учти, что этот "привет" нельзя будет изменять. Прочитай для начала прикреплённую тему "Указатели, строки, классы и пр.". -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Igor_K |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 4.2.2008 Где: Kyiv Репутация: нет Всего: нет |
![]() archimed7592, creatorcode, спасибо вам огромное!!! Вы меня спасли от злого препода со старым компилятором!! ![]() Это сообщение отредактировал(а) Igor_K - 9.4.2008, 11:31 |
|||
|
||||
Igor_K |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 4.2.2008 Где: Kyiv Репутация: нет Всего: нет |
Кажись я рано радовался :( Чето не выходит у меня сделать функцию, которая будет возвращать часть строки переданной в параметре. ну аналог метода substr объекта string.
эта функция
Есть у когото мысли как это сделать? |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
При такой постановке вопроса - никак. Возвращаемый char* - это еще не строка, еще нужно место, куда это будет указывать. Т.е. нужно или динамически заказать память и разместить строку там, либо использовать статический буфер под строку (NB. Никогда так не делайте!) Недостатки
|
||||
|
|||||
Igor_K |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 4.2.2008 Где: Kyiv Репутация: нет Всего: нет |
archimed7592, xvr, спасибо за пример!!!
![]() Теперь окончательно разобрался благодаря вам!!!
Это сообщение отредактировал(а) archimed7592 - 9.4.2008, 14:46 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |