Вопрос по string, c++ – Хорошая C ++ библиотека для работы со строками

37

Я прошу прощения за пылающие std :: string и std :: wstring. Они весьма ограничены и далеки от поточности. Производительность мудрая, они не так уж хороши. Я скучаю по простым функциям:

Splitting a string into array/vector/list Simple & intuitive case-insensitive find & replace Support for i18n without worrying about string or wstring Conversion to and from int, float, double Conversion to and from UTF-8, UTF-16 & other encodings Thread-safe/reentrant Small footprint & no dependencies Highly portable & cross-platform

Я нашел Qt QString полезным, а также CBStringhttp://bstring.sourceforge.net/bstrFAQ.shtml

Любые другие предложения и сравнения? Спасибо.

Ваш Ответ

7   ответов
1

ICU& APOS; sUnicodeString, так как он поддерживает все распространенные функции работы со строками, а также поддержку i18n.

Не знаете, что такое ICU? Вот выдержка изВикипедия:

International Components for Unicode (ICU) is an open source project of mature C/C++ and Java libraries for Unicode support, software internationalization, and software globalization. ICU is widely portable to many operating systems and environments. It gives applications the same results on all platforms and between C, C++, and Java software. The ICU project is sponsored, supported, and used by IBM and many other companies.

2

и он имеет много функций. Хотя это часть большой библиотеки (wxWidgets) и, возможно, слишком большая, когда вы просто хотите использовать строки. Он также работает без компонентов графического интерфейса, когда вы просто используете wxBase, который содержит wxString и a 'Несколько'. другие компоненты.

РЕДАКТИРОВАТЬ: вотссылка на сайт к документации. Он принимает стандартные функции std :: string, а также некоторые другие. Я всегда нахожу BeforeFirst () и AfterFirst () очень удобными, когда мне нужно разобрать какой-то текст. И это действительно хорошо задокументировано.

Error: User Rate Limit Exceeded Viet
10

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

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

Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

иотеку C cstdlib.

#include <cstlib>
#include <iostream>

int main()
{
   std::string num;

   std::cin >> num;

   someFunc(atoi(num));
   someOtherFunc(atof(num));
   return 0;
}

Atoi = ASCII в целое число atof = ascii, чтобы плавать

Что касается поиска, используйте функцию STL & quot;находить& Quot; определенный по алгоритму заголовка, или find_first_of (или аналогичный). Я также считаю, что вы можете инициализировать вектор символов с помощью std :: string, но это гипотеза.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
26

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

Библиотека имеет следующие возможности:

Generic string tokenizer and token iterators Split routines User specified delimiter and splitter policies (simple and regex based etc.) Conversions between data and hex and base-64 In-place removal and replace routines Wild-card matching and globing Fast 2D token grid processing Extensible string processing templates

и многое другое ...

Совместимые компиляторы C ++:

GCC 4.0+ Intel C++ Compiler 9.0+ Microsoft Visual C++ 8.0+ Comeau C/C++ 4.1+

Источник:

Download: http://www.partow.net/programming/strtk/index.html SVN: http://code.google.com/p/strtk/
Error: User Rate Limit Exceeded Viet
10

Библиотека строковых алгоритмов C ++ отУвеличение имеет почти все функции, которые вам нужны.

Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceededboost.org/doc/libs?view=category_StringError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3

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

Кроме того, название предполагает, что это лучше, так как они могут лгать? :)

Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Viet
Error: User Rate Limit Exceeded

Похожие вопросы