| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Аналог php::explode для C++ |
| Автор: szz 2.7.2007, 21:26 | ||||
| Вот. Класс для резделения строки на части, используя разделитель - произвольную строку (строку, заметьте, а не букву!) Путем небольших модификаций зависимость от BCB можно убрать. Используем так:
Сам исходник: string_array.h
|
| Автор: NFL 13.8.2011, 22:09 |
| Отлично, как раз в bcb она мне пригодилась Спасибо |
| Автор: borisbn 14.8.2011, 17:04 | ||||||||||||
| Если автор открыт для критики, то их есть у меня 1. Нет деструктора, который очищал бы память выделенную под
2. Такой класс нельзя копировать StringArray a; a.explode( "::", "aa: StringArray b = a; b.explode( " ", "aa bb cc" ); // удаление массива, выделенного для a
3. Зачем этот изврат с динамическим массивом строк ? Почему не вектор ? Тогда бы и не нужно было бы дважды проходться по строке, деструктор сам бы всё почистил и не было бы проблемы с копированием (п.2) 4. Почему нет const
5. Почему строки передаются по значению, а не по ссылке ?
6. Что будет, если подать такую строку и разделитель
7. Неплохо было бы ввести флаг "выдавать пустые секции" для вариантов
8. Лучше было бы, если б в классе было несколько перегруженных функций для разных разделителей: для строки (уже есть), для одиночного символа, для регулярного выражения. Посмотри, как у профи это сделано http://doc.qt.nokia.com/latest/qstring.html#split NFL, не используй этот код. Он нерабочий и опасный |
| Автор: xvr 15.8.2011, 14:17 |
| И еще - помесь AnsiString'а и std::string'а в одном классе выглядит несколько эклектично |
| Автор: volatile 15.8.2011, 21:35 |
| Дата: 2.7.2007 |
| Автор: NFL 16.8.2011, 14:26 |
| Как бы работает Моя задача настолько примитивна, что его вполне достаточно |
| Автор: borisbn 17.8.2011, 09:44 | ||||
| вот вариант какбэ получше http://liveworkspace.org/code/187229067096e3bcb5bae250e1e4cfec
|
| Автор: mihailpp 18.8.2011, 13:00 |
| Спасибо за информацию была кое какая проблема, исправилhttp://www.world4baby.ru/ |
| Автор: ZVano 14.9.2011, 17:33 | ||
Я сделал так (builder 2010)
|