strtk icon indicating copy to clipboard operation
strtk copied to clipboard

C++ String Toolkit Library https://www.partow.net/programming/strtk/index.html

C++ String Toolkit Library

[INTRODUCTION] The C++ String Toolkit Library (StrTk) consists of robust, optimized and portable string processing algorithms for the C++ language. StrTk is designed to be easy to use and integrate within existing code bases. Furthermore the library has a rich set of features that makes light work of any kind of string processing task.

[CAPABILITIES] The StrTk library has the following capabilities:

  • Generic string tokenizer and token iterators
  • Fast 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 globbing
  • Search and Replace
  • Fast token grid and Comma Separated Values (CSV and DSV) processing
  • Extremely fast String to Integer, Double and other POD conversions
  • Extensible string processing templates and algorithms (eg: combinatorics and randomizations)
  • Prefix tree and Bloom filter structures for efficient string matching and testing
  • Fast and simple-to-use binary serialization
  • Seamless integration with STL and Boost
  • Easy to use wrappers of common string processing usage patterns
  • Single header file solution requires no installation or building

[COPYRIGHT NOTICE] Free use of the String Toolkit Library is permitted under the guidelines and in accordance with the most current version of the MIT License. http://www.opensource.org/licenses/MIT

[DOWNLOADS & UPDATES] All updates and the most recent version of the C++ String Toolkit can be found at: (1) http://www.partow.net/programming/strtk/index.html (2) http://strtk.partow.net

Code repository: https://github.com/ArashPartow/strtk

[INSTALLATION] (1) strtk.hpp should be placed in a project or system include path (e.g: /usr/include/).

(2) If the Boost libraries (random, regex, lexical_cast etc) are not available or it not wished they be used then the following preprocessor directive needs defining, either in code before strtk.hpp is included or as a compiler switch: (*) strtk_no_tr1_or_boost

(3) It is advisable to have either Boost installed or a TR1 compliant C++ standard library. Installation of Boost on: () Win32 : http://www.boostpro.com/download () Ubuntu : boost packages via apt-get or synaptic () Fedora : yum -y install boost-devel () http://www.boost.org/doc/libs/release/more/getting_started/index.html

[COMPILATION] (1) For a complete build: make clean all (2) For a PGO build: make clean pgo (3) To strip executables: make strip_bin

[COMPILER COMPATIBILITY] () GNU Compiler Collection (4.1+) () Intel C++ Compiler (9.x+) () Clang/LLVM (1.1+) () PGI C++ (10.x+) () Microsoft Visual Studio C++ Compiler (8.1+) () IBM XL C/C++ (10.x+) (*) C++ Builder (XE4+)

[FILES] (00) Makefile (01) readme.txt (02) strtk.hpp (03) strtk_bloom_filter_example.cpp (04) strtk_combinations.cpp (05) strtk_combinator_example.cpp (06) strtk_converters_example.cpp (07) strtk_examples.cpp (08) strtk_glober.cpp (09) strtk_hexview.cpp (10) strtk_ipv4_parser.cpp (11) strtk_keyvalue_example.cpp (12) strtk_nth_combination_example.cpp (13) strtk_numstats.cpp (14) strtk_parse_test.cpp (15) strtk_period_parser.cpp (16) strtk_random_line.cpp (17) strtk_randomizer.cpp (18) strtk_search_trie_example.cpp (19) strtk_serializer_example.cpp (20) strtk_text_parser_example01.cpp (21) strtk_text_parser_example02.cpp (22) strtk_tokengrid_example.cpp (23) strtk_tokenizer_cmp.cpp (24) strtk_tokenizer_test.cpp (25) strtk_wordfreq.cpp