Home | History | Annotate | Download | only in strings

Lines Matching refs:STR

118 template<typename STR>
119 bool ReplaceCharsT(const STR& input,
120 const typename STR::value_type replace_chars[],
121 const STR& replace_with,
122 STR* output) {
129 while (found != STR::npos) {
164 template<typename STR>
165 TrimPositions TrimStringT(const STR& input,
166 const typename STR::value_type trim_chars[],
168 STR* output) {
170 const typename STR::size_type last_char = input.length() - 1;
171 const typename STR::size_type first_good_char = (positions & TRIM_LEADING) ?
173 const typename STR::size_type last_good_char = (positions & TRIM_TRAILING) ?
180 (first_good_char == STR::npos) || (last_good_char == STR::npos)) {
272 template<typename STR>
273 STR CollapseWhitespaceT(const STR& text,
275 STR result;
284 for (typename STR::const_iterator i(text.begin()); i != text.end(); ++i) {
331 bool ContainsOnlyWhitespaceASCII(const std::string& str) {
332 for (std::string::const_iterator i(str.begin()); i != str.end(); ++i) {
339 bool ContainsOnlyWhitespace(const string16& str) {
340 return str.find_first_not_of(kWhitespaceUTF16) == string16::npos;
343 template<typename STR>
344 static bool ContainsOnlyCharsT(const STR& input, const STR& characters) {
345 for (typename STR::const_iterator iter = input.begin();
347 if (characters.find(*iter) == STR::npos)
393 template<class STR>
394 static bool DoIsStringASCII(const STR& str) {
395 for (size_t i = 0; i < str.length(); i++) {
396 typename ToUnsigned<typename STR::value_type>::Unsigned c = str[i];
403 bool IsStringASCII(const std::wstring& str) {
404 return DoIsStringASCII(str);
408 bool IsStringASCII(const string16& str) {
409 return DoIsStringASCII(str);
413 bool IsStringASCII(const base::StringPiece& str) {
414 return DoIsStringASCII(str);
417 bool IsStringUTF8(const std::string& str) {
418 const char *src = str.data();
419 int32 src_len = static_cast<int32>(str.length());
507 bool StartsWithASCII(const std::string& str,
511 return str.compare(0, search.length(), search) == 0;
513 return base::strncasecmp(str.c_str(), search.c_str(), search.length()) == 0;
516 template <typename STR>
517 bool StartsWithT(const STR& str, const STR& search, bool case_sensitive) {
519 return str.compare(0, search.length(), search) == 0;
521 if (search.size() > str.size())
523 return std::equal(search.begin(), search.end(), str.begin(),
524 base::CaseInsensitiveCompare<typename STR::value_type>());
528 bool StartsWith(const std::wstring& str, const std::wstring& search,
530 return StartsWithT(str
534 bool StartsWith(const string16& str, const string16& search,
536 return StartsWithT(str, search, case_sensitive);
540 template <typename STR>
541 bool EndsWithT(const STR& str, const STR& search, bool case_sensitive) {
542 typename STR::size_type str_length = str.length();
543 typename STR::size_type search_length = search.length();
547 return str.compare(str_length - search_length, search_length, search) == 0;
550 str.begin() + (str_length - search_length),
551 base::CaseInsensitiveCompare<typename STR::value_type>());
555 bool EndsWith(const std::string& str, const std::string& search,
557 return EndsWithT(str, search, case_sensitive);
560 bool EndsWith(const std::wstring& str, const std::wstring& search,
562 return EndsWithT(str, search, case_sensitive);
566 bool EndsWith(const string16& str, const string16& search,
568 return EndsWithT(str, search, case_sensitive);
604 void DoReplaceSubstringsAfterOffset(StringType* str,
609 if ((start_offset == StringType::npos) || (start_offset >= str->length()))
613 for (typename StringType::size_type offs(str->find(find_this, start_offset));
614 offs != StringType::npos; offs = str->find(find_this, offs)) {
615 str->replace(offs, find_this.length(), replace_with);
623 void ReplaceFirstSubstringAfterOffset(string16* str,
627 DoReplaceSubstringsAfterOffset(str, start_offset, find_this, replace_with,
631 void ReplaceFirstSubstringAfterOffset(std::string* str,
635 DoReplaceSubstringsAfterOffset(str, start_offset, find_this, replace_with,
639 void ReplaceSubstringsAfterOffset(string16* str,
643 DoReplaceSubstringsAfterOffset(str, start_offset, find_this, replace_with,
647 void ReplaceSubstringsAfterOffset(std::string* str,
651 DoReplaceSubstringsAfterOffset(str, start_offset, find_this, replace_with,
656 template<typename STR>
657 static size_t TokenizeT(const STR& str,
658 const STR& delimiters,
659 std::vector<STR>* tokens) {
662 typename STR::size_type start = str.find_first_not_of(delimiters);
663 while (start != STR::npos) {
664 typename STR::size_type end = str.find_first_of(delimiters, start + 1);
665 if (end == STR::npos) {
666 tokens->push_back(str.substr(start));
669 tokens->push_back(str.substr(start, end - start));
670 start = str.find_first_not_of(delimiters, end + 1);
677 size_t Tokenize(const std::wstring& str,
680 return TokenizeT(str, delimiters, tokens);
684 size_t Tokenize(const string16& str,
687 return TokenizeT(str, delimiters, tokens);
691 size_t Tokenize(const std::string& str,
694 return TokenizeT(str, delimiters, tokens);
697 size_t Tokenize(const base::StringPiece& str,
700 return TokenizeT(str, delimiters, tokens);
703 template<typename STR>
704 static STR JoinStringT(const std::vector<STR>& parts, const STR& sep) {
706 return STR();
708 STR result(parts[0]);
709 typename std::vector<STR>::const_iterator iter = parts.begin();
984 // ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/{wcs,str}lcpy.c