История изменений
Исправление peregrine, (текущая версия) :
Stl с юникодом дружит
Да ну? Если ты про utf32, то возможно и дружит. А что utf16, что utf8 - тихий ужас с C++ и стандартной библиотекой шаблонов. Или тебе одного ввода/вывода достаточно + хранения, а считать, сколько символов (не байт, а символов) и т.д. не требуется? Но да, можно, конечно, велосипеды клепать, типо такого:
unsigned int utf8StrLength (std::string str)
{
unsigned int len = 0;
for (int i = 0; i < str.length(); i++)
{
len += (str.at(i)++ & 0xc0) != 0x80;
}
return len;
}
Исправление peregrine, :
Stl с юникодом дружит
Да ну? Если ты про utf32, то возможно и дружит. А что utf16, что utf8 - тихий ужас с C++ и стандартной библиотекой шаблонов. Или тебе одного ввода/вывода достаточно + хранения, а считать, сколько символов (не байт, а символов) и т.д. не требуется? Но да, можно, конечно, велосипеды клепать, типо такого:
unsigned int utf8StrLength (std::string str)
{
unsigned int len = 0;
for (int i = 0; i < str.length(); i++)
{
len += (str.at(i)++ & 0xc0) != 0x80;
}
return len;
}
Исходная версия peregrine, :
Stl с юникодом дружит
Да ну? Если ты про utf32, то возможно и дружит. А что utf16, что utf8 - тихий ужас с C++ и стандартной библиотекой шаблонов. Или тебе одного ввода/вывода достаточно + хранения, а считать, сколько символов (не байт, а символов) и т.д. не требуется? Но да, можно конечно велосипеды клепать, типо такого:
unsigned int utf8StrLength (std::string str)
{
unsigned int len = 0;
for (int i = 0; i < str.length(); i++)
{
len += (str.at(i)++ & 0xc0) != 0x80;
}
return len;
}