8#ifndef INCLUDED_BDLB_STRING
9#define INCLUDED_BDLB_STRING
119#include <bdlscm_version.h>
127#include <bsl_climits.h>
128#include <bsl_cstddef.h>
129#include <bsl_cstring.h>
130#include <bsl_string.h>
164 const char *rhsString,
170 const char *rhsString);
173 const char *rhsString,
179 const char *rhsString);
181 const char *rhsString,
203 static char *
copy(
const char *
string,
231 const char *rhsString,
238 const char *rhsString);
241 const char *rhsString,
247 const char *rhsString);
249 const char *rhsString,
263 static void ltrim(std::string *
string);
264#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
265 static void ltrim(std::pmr::string *
string);
278 static void ltrim(
char *
string,
int *length);
286 static void pad(
bsl::string *
string,
int length,
char padChar =
' ');
287 static void pad(std::string *
string,
int length,
char padChar =
' ');
289#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
294 static void pad(std::pmr::string *
string,
295 std::pmr::string::size_type length,
308 static void rtrim(std::string *
string);
309#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
310 static void rtrim(std::pmr::string *
string);
321 static void rtrim(
const char *
string,
int *length);
332 static const char *
strstr(
const char *
string,
334 const char *subString,
349 const char *subString,
362 static const char *
strrstr(
const char *
string,
364 const char *subString,
379 const char *subString,
387 static int strnlen(
const char *
string,
int maximumLength);
401 const char *srcString,
411 static void toLower(
char *
string,
int length);
413 static void toLower(std::string *
string);
414#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
415 static void toLower(std::pmr::string *
string);
424 static void toUpper(
char *
string,
int length);
426 static void toUpper(std::string *
string);
427#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
428 static void toUpper(std::pmr::string *
string);
439 static void trim(
char *
string);
441 static void trim(std::string *
string);
442#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
443 static void trim(std::pmr::string *
string);
457 static void trim(
char *
string,
int *length);
488 const char *rhsString,
495 const char *rhsString);
498 const char *rhsString,
504 const char *rhsString);
506 const char *rhsString,
530 static_cast<int>(rhsString.
size()));
536 const char *rhsString)
557 static_cast<int>(rhsString.
size()));
562 const char *rhsString)
569 static_cast<int>(lhsString.
size()));
574 const char *rhsString,
582 static_cast<int>(lhsString.
size()),
595 static_cast<int>(lhsString.
size()),
597 static_cast<int>(rhsString.
size()));
608 static_cast<int>(bsl::strlen(
string)),
619 return copy(
string.data(),
620 static_cast<int>(
string.size()),
633 static_cast<int>(rhsString.
size()));
639 const char *rhsString)
660 static_cast<int>(rhsString.
size()));
665 const char *rhsString)
672 static_cast<int>(lhsString.
size()));
677 const char *rhsString,
685 static_cast<int>(lhsString.
size()),
698 static_cast<int>(lhsString.
size()),
700 static_cast<int>(rhsString.
size()));
709 int length =
static_cast<int>(
string->size());
711 ltrim(&(*
string)[0], &length);
712 string->resize(length);
721 int length =
static_cast<int>(
string->size());
723 ltrim(&(*
string)[0], &length);
724 string->resize(length);
727#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
734 int length =
static_cast<int>(
string->size());
736 ltrim(&(*
string)[0], &length);
737 string->resize(length);
747 if (string->size() <
static_cast<bsl::size_t
>(length)) {
748 string->resize(length, padChar);
758 if (string->size() <
static_cast<bsl::size_t
>(length)) {
759 string->resize(length, padChar);
763#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
766 std::pmr::string::size_type length,
771 if (string->size() < length) {
772 string->resize(length, padChar);
783 int length =
static_cast<int>(
string->size());
785 rtrim(&(*
string)[0], &length);
786 string->resize(length);
795 int length =
static_cast<int>(
string->size());
797 rtrim(&(*
string)[0], &length);
798 string->resize(length);
801#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
808 int length =
static_cast<int>(
string->size());
810 rtrim(&(*
string)[0], &length);
811 string->resize(length);
821 toLower(&(*
string)[0],
static_cast<int>(string->size()));
830 toLower(&(*
string)[0],
static_cast<int>(string->size()));
833#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
840 toLower(&(*
string)[0],
static_cast<int>(string->size()));
850 toUpper(&(*
string)[0],
static_cast<int>(string->size()));
859 toUpper(&(*
string)[0],
static_cast<int>(string->size()));
862#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
869 toUpper(&(*
string)[0],
static_cast<int>(string->size()));
880 rtrim(
string, length);
881 ltrim(
string, length);
890 int length =
static_cast<int>(
string->size());
892 rtrim(&(*
string)[0], &length);
893 ltrim(&(*
string)[0], &length);
894 string->resize(length);
903 int length =
static_cast<int>(
string->size());
905 rtrim(&(*
string)[0], &length);
906 ltrim(&(*
string)[0], &length);
907 string->resize(length);
910#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR_STRING
917 int length =
static_cast<int>(
string->size());
919 rtrim(&(*
string)[0], &length);
920 ltrim(&(*
string)[0], &length);
921 string->resize(length);
934 static_cast<int>(rhsString.
size()));
940 const char *rhsString)
961 static_cast<int>(rhsString.
size()));
966 const char *rhsString)
973 static_cast<int>(lhsString.
size()));
978 const char *rhsString,
986 static_cast<int>(lhsString.
size()),
999 static_cast<int>(lhsString.
size()),
1001 static_cast<int>(rhsString.
size()));
Definition bslstl_string.h:1252
size_type size() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_string.h:7292
CHAR_TYPE * data() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_string.h:7177
Definition bslma_allocator.h:545
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlb_algorithmworkaroundutil.h:74
Definition bdlb_string.h:147
static char * copy(const char *string, int length, bslma::Allocator *basicAllocator)
static bool areEqualCaseless(const char *lhsString, int lhsLength, const char *rhsString, int rhsLength)
static void toFixedLength(char *dstString, int dstLength, const char *srcString, int srcLength, char padChar=' ')
static void toLower(char *string)
static void skipLeadingTrailing(const char **begin, const char **end)
static const char * strrstr(const char *string, int stringLen, const char *subString, int subStringLen)
static char * copy(const char *string, bslma::Allocator *basicAllocator)
Definition bdlb_string.h:601
static void ltrim(char *string)
static bool areEqualCaseless(const char *lhsString, const char *rhsString)
static void toUpper(char *string)
static const char * strstr(const char *string, int stringLen, const char *subString, int subStringLen)
static void trim(char *string)
static void pad(bsl::string *string, int length, char padChar=' ')
Definition bdlb_string.h:742
static int lowerCaseCmp(const char *lhsString, const char *rhsString, int rhsLength)
static bool areEqualCaseless(const char *lhsString, const char *rhsString, int rhsLength)
static const char * strrstrCaseless(const char *string, int stringLen, const char *subString, int subStringLen)
static void rtrim(const char *string, int *length)
static void toUpper(char *string, int length)
static int lowerCaseCmp(const char *lhsString, int lhsLength, const char *rhsString, int rhsLength)
static int upperCaseCmp(const char *lhsString, int lhsLength, const char *rhsString, int rhsLength)
static int lowerCaseCmp(const char *lhsString, const char *rhsString)
static int upperCaseCmp(const char *lhsString, const char *rhsString, int rhsLength)
static const char * strstrCaseless(const char *string, int stringLen, const char *subString, int subStringLen)
static void rtrim(char *string)
static void toLower(char *string, int length)
static int upperCaseCmp(const char *lhsString, const char *rhsString)
static void ltrim(char *string, int *length)
static int strnlen(const char *string, int maximumLength)