Строки: Конкатенация строк

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
qwertyuiop
Сообщения: 75
Зарегистрирован: 24 мар 2005, 11:00

Строки: Конкатенация строк

Сообщение qwertyuiop » 29 мар 2005, 18:34

Интересует как сделать сабж без использования библиотечных функций...
Плииз....

Аватара пользователя
WinMain
Сообщения: 912
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Сообщение WinMain » 30 мар 2005, 09:28

Для работы с символьными строками можно написать собственный аналог большинства библиотечных функций. Там алгоритмы довольно простые, на уровне упражнений для начинающих.

melkiy
Сообщения: 3
Зарегистрирован: 18 ноя 2004, 17:20
Контактная информация:

Сообщение melkiy » 31 мар 2005, 10:35

Может кто-нибудь объяснит, что такое "сабж" и откуда слово происходит?
Пожалуйста 8-)

Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Сообщение Romeo » 31 мар 2005, 11:15

См. англ. Subject.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

qwertyuiop
Сообщения: 75
Зарегистрирован: 24 мар 2005, 11:00

Сообщение qwertyuiop » 31 мар 2005, 13:17

спасиб !
Вопрос снят!!!

TERM
Сообщения: 3
Зарегистрирован: 16 окт 2005, 16:38

Сообщение TERM » 16 окт 2005, 16:47

И всё-таки, как это сделать?

TERM
Сообщения: 3
Зарегистрирован: 16 окт 2005, 16:38

Сообщение TERM » 16 окт 2005, 18:17

С использованием указателей.

Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Сообщение Romeo » 17 окт 2005, 10:17

Код: Выделить всё

extern const char* str1;
extern const char* str2;

const int nLen1 = strlen(str1);
const int nLen2 = strlen(str2);

char* strResult = new char [nLen1 + nLen2 + 1];
strcpy(strResult, str1);
strcpy(strResult + nLen1, str2);

// let's use resulting string
// ...
// now it is already unnecessary

delete[] strResult;
Для того, чтобы полность избавиться от использования библиотечных функций осталось только самим имплементировать strlen и strcpy. Думаю, это уже не составит труда.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

TERM
Сообщения: 3
Зарегистрирован: 16 окт 2005, 16:38

Сообщение TERM » 17 окт 2005, 19:36

Спасибо!

Ответить