// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_STRING_UTILS_H_ #define BASE_STRING_UTILS_H_ #include #include namespace base { constexpr char16_t kWhitespaceUTF16 = u' '; // Return a C++ string given printf-like input. template std::string StringPrintf(const std::string& format, Args... args) { // Calculate the buffer size. int size = snprintf(nullptr, 0, format.c_str(), args...) + 1; std::unique_ptr buf(new char[size]); snprintf(buf.get(), size, format.c_str(), args...); return std::string(buf.get(), buf.get() + size - 1); } std::u16string ASCIIToUTF16(std::string src); std::u16string UTF8ToUTF16(std::string src); std::string UTF16ToUTF8(std::u16string src); std::u16string NumberToString16(float number); std::string NumberToString(unsigned int number); std::string NumberToString(int32_t number); std::string NumberToString(float number); std::string ToUpperASCII(std::string str); std::string ToLowerASCII(std::string str); std::string JoinString(std::vector tokens, std::string delimiter); void ReplaceChars(std::string in, std::string from, std::string to, std::string* out); bool LowerCaseEqualsASCII(std::string a, std::string b); bool ContainsOnlyChars(std::u16string str, char16_t ch); const std::string& EmptyString(); } // namespace base #endif // BASE_STRING_UTILS_H_