LINUX.ORG.RU

Строки в си


0

0

Может я глупость говорю, но нет ли для си какой-нибудь библиотеки со строками? Хочется чего-нибудь более продвинутого, чем стандарные char*. С++ нежелательно - дофига кода на си, фиг скомпилируешь потом.

Чего хочу - скорость, хорошая совместимость с char*.

Как вариант - другой язык, с "развитыми" строками, чтобы на нем написать пару функций и присобачить их к основной проге (соответственно, он должен быть компилируемым). Хотел d попробовать, но у него вроде проблемы с встраиванием в си.

anonymous

Смотрите в сторону glib.

omerm
()

Посмотри libslack и vsftpd (не библиотека, но содержит простой набор функций для обработки строк). Обе GPL.

amm
()

а чего хочется от строк ? конкретно, какого функционала нехватает ?? то есть библиотека со строками - очень широкое понятие.. вплоть до генетических алгоритмов :)

если нужны просто функции редактирования строк - их можно самому сделать за день-два, или подсмотреть в любимом редакторе..

> Как вариант - другой язык, с "развитыми" строками, чтобы на нем написать пару функций и присобачить их к основной проге (соответственно, он должен быть компилируемым). Хотел d попробовать, но у него вроде проблемы с встраиванием в си.

вариант - написать эту-же пару функций на C++ религия не позволяет ?

MKuznetsov ★★★★★
()

>С++ нежелательно - дофига кода на си, фиг скомпилируешь потом.

Почему? Скомпилировать в объектный код, а потом скомпоновать.

Selecter ★★★★
()
Ответ на: комментарий от Selecter

можно скомпилировать в библиотеку, а потом слинковать с твоей прогой

friday ★★★
()

>дофига кода на си, фиг скомпилируешь потом.

в .h файлах пишешь
#ifdef __cplusplus
extern "C" {
#endif

...объявления функций на Си...

#ifdef __cplusplus
}
#endif

и никаких проблем не будет

Reset ★★★★★
()
Ответ на: комментарий от Reset

2Reset:

1. Для этого функция main() должна быть ЦеППшная

2. Дернуть из Цешной функции ЦеППшную - не совсем тривиально.

Die-Hard ★★★★★
()

Чето я не понял видимо, но помоему следует хорошенько почитать маны по стандартным сишным функциям по работе с строками. большенство из них инклюдятся через string.h, в них например входят strdup(const char* str) который на выход выдает уже маллочиный char* - чем тебе оно не нравицца??
Далее есть всякие стандартные strcat/strcpy итп. они тоже корректно реаллочат тебе char*.
Вообще не вижу проблеммы.

Алекс

godexsoft
()
Ответ на: комментарий от godexsoft

> Далее есть всякие стандартные strcat/strcpy итп. они тоже корректно реаллочат тебе char*.

Я что, C стал забывать? Что-то не припомню, чтобы strcat/strcpy реаллочили память.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от godexsoft

>Далее есть всякие стандартные strcat/strcpy итп. они тоже корректно реаллочат тебе char*.

это кто тебе такую чушь сказал? советую почитать стандарт или помедитировать с valgrind'ом

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.