c++ - How to get the accurate length of a std::string? -


i trimming long std::string fit in text container using code.

std::string appdelegate::gettrimmedstringwithrange(std::string text, int range) {     if (text.length() > range)     {         std::string str(text,0,range-3);         return str.append("...");     }     return text; } 

but in case of other languages hindi "हिन्दी" length of std::string wrong.

my question how can retrieve accurate length of std::string in test cases.

thanks

assuming you're using utf-8, can convert string simple (hah!) unicode , count characters. grabbed example rosettacode.

#include <iostream> #include <codecvt> int main() {     std::string utf8 = "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b"; // u+007a, u+00df, u+6c34, u+1d10b     std::cout << "byte length: " << utf8.size() << '\n';     std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> conv;     std::cout << "character length: " << conv.from_bytes(utf8).size() << '\n'; } 

Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

mercurial graft feature, can it copy? -