@Olivier. Это верно. Я заметил, что когда я написал его, если я уронил количество выделений, скажем, до 100 раз, эталонный тест совпадает с std :: string. Я отредактировал пост и добавил тест на github

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

я нашелэто статья, в которой подробно рассказывается о каждом из них, но у каждого из них, похоже, есть масса минусов (не поймите меня неправильно, эта статья чрезвычайно полезна, но меня все равно беспокоит, что даже если бы я выбрал один из те, я не буду использовать лучшее, что я могу получить). Я также не знаю, насколько актуальна эта статья, отсюда и мой нынешний призыв.

Я ищу то, что может содержать большое количество символов и упрощает процесс поиска по строке. Если это позволяет мне токенизировать строку любым способом, даже лучше. Кроме того, он должен иметь довольно хорошую производительность ввода-вывода. Печать и форматированная печать - не самый главный приоритет. Я знаю, что не стоит ожидать, что библиотека сделает всю работу за меня, но я просто бродил, если бы была хорошо документированная строковая функция, которая могла бы сэкономить мне время и некоторую работу.

Любая помощь очень ценится. Заранее спасибо!

РЕДАКТИРОВАТЬ: меня спросили о лицензии, которую я предпочитаю. Подойдет любая лицензия с открытым исходным кодом, но желательно GPL (v2 или v3).

EDIt2: Я нашел библиотеку betterString (bstring), и она выглядит довольно хорошо. Хорошая документация, небольшой, но универсальный набор функций, и его легко смешивать со строками c. У кого-нибудь есть хорошие или плохие истории об этом? Единственный недостаток, о котором я читал, это то, что в нем отсутствует Юникод (опять же, читайте об этом, пока еще не видел его лицом к лицу), но все остальное кажется довольно хорошим.

EDIT3: Кроме того, предпочтительно, чтобы его чистый C.

Ответы на вопрос(6)

Ваш ответ на вопрос