c – std :: wstring长度

前端之家收集整理的这篇文章主要介绍了c – std :: wstring长度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
std :: wstring.length()函数的结果是什么,wchar_t(s)的长度或符号的长度是多少?为什么?
TCHAR r2[3];
r2[0] = 0xD834;  // D834,DD1E - musical G clef
r2[1] = 0xDD1E;  //
r2[2] = 0x0000;  // '/0'

std::wstring r = r2;

std::cout << "capacity: " << r.capacity() << std::endl;
std::cout << "length: "   << r.length()   << std::endl;
std::cout << "size: "     << r.size()     << std::endl;
std::cout << "max_size: " << r.max_size() << std::endl;

Output>

capacity: 351
length: 2
size: 2
max_size: 2147483646

解决方法

std :: wstring :: size()返回字符串中wide-char元素的数量.这与字符数不同(正如您所注意到的).

不幸的是,std :: basic_string模板(以及它的实例化,例如std :: string和std :: wstring)与编码无关.从这个意义上讲,它实际上只是一个字节串的模板,而不是一串字符.

猜你在找的C&C++相关文章