Хорошая C ++ библиотека для работы со строками

Он соответствует p элементам с классом some_class, которые являются непосредственно под div.

37
задан Viet 9 July 2009 в 02:47
поделиться

6 ответов

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

11
ответ дан 27 November 2019 в 04:50
поделиться

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

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

10
ответ дан 27 November 2019 в 04:50
поделиться

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

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

3
ответ дан 27 November 2019 в 04:50
поделиться

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

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

2
ответ дан 27 November 2019 в 04:50
поделиться

Для преобразования вы всегда можете разбить и использовать библиотеку C. cstdlib.

#include <cstlib>
#include <iostream>

int main()
{
   std::string num;

   std::cin >> num;

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

atoi = ascii to integer atof = ascii to float

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

1
ответ дан 27 November 2019 в 04:50
поделиться

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

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

  • Универсальный строковый токенизатор и итераторы токенов
  • Подпрограммы разделения
  • Пользовательские политики разделителей и разделителей (простые и на основе регулярных выражений и т. д.)
  • Преобразования между данными и шестнадцатеричным кодом и базовым 64
  • Процедуры удаления и замены на месте
  • Подстановочные знаки и подстановка слов
  • Быстрая обработка сетки 2D токенов
  • Расширяемая строка шаблоны обработки

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

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

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

Источник:

26
ответ дан 27 November 2019 в 04:50
поделиться
Другие вопросы по тегам:

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