| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Создание массива char`ов и обрезка строки |
| Автор: Igor_K 8.4.2008, 21:59 |
| Доброго времени суток! Собственно задача. Нужно небольшую программу перевести под..... Turbo C++ 3.0. И у меня возникли некоторые проблемы с строками. Там я использовал string и все было ок, но тут нужно заменить все строки на char и у меня тут возникли проблемы :( Нужно создать массив char`ов Было: std::string el[20]; Нужно создать массив из 20 елементов типа char. Желательно чтобы char был не фиксированного размера. Как создать такое? Ну или хотябы фиксированной длины... но у меня не выходит. Вопрос №2. Как обрезать строку char??? Я имею ввиду аналог метода substr объекта string. Есть ли аналог ? Всем спасибо большое заранее!!!!! |
| Автор: Igor_K 8.4.2008, 22:27 | ||||
| archimed7592, спасибо большое за обьяснение!!!! с 2 заданием понял, немного подправлю под себя и будет ок. но 1 задания...
Не, немного не то. Так же я создам массив char из 19 символов. так? Мне нужно массив строк. То есть , например массив имеет 20 елементов, каждый елемент - тоже массив char . Ну похоже это на двумерный массив. Но как его заполнять??? Например код:
не работает. Вы не знаете как правильно сделать? |
| Автор: creatorcode 8.4.2008, 23:14 | ||||
|
| Автор: archimed7592 9.4.2008, 11:00 | ||
Так присваивать нельзя... Так можно только инициализировать. "Присваивать" можно было бы так как показал creatorcode... либо так:
Но, учти, что этот "привет" нельзя будет изменять. Прочитай для начала прикреплённую тему "Указатели, строки, классы и пр.". |
| Автор: Igor_K 9.4.2008, 11:24 |
| archimed7592, creatorcode, спасибо вам огромное!!! Вы меня спасли от злого препода со старым компилятором!! |
| Автор: Igor_K 9.4.2008, 13:02 | ||
| Кажись я рано радовался :( Чето не выходит у меня сделать функцию, которая будет возвращать часть строки переданной в параметре. ну аналог метода substr объекта string. эта функция
Есть у когото мысли как это сделать? |
| Автор: archimed7592 9.4.2008, 13:12 | ||
|
| Автор: xvr 9.4.2008, 13:20 | ||||
При такой постановке вопроса - никак. Возвращаемый char* - это еще не строка, еще нужно место, куда это будет указывать. Т.е. нужно или динамически заказать память и разместить строку там, либо использовать статический буфер под строку (NB. Никогда так не делайте!) Недостатки
|
| Автор: Igor_K 9.4.2008, 14:13 | ||
| archimed7592, xvr, спасибо за пример!!! Теперь окончательно разобрался благодаря вам!!!
|