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)与编码无关.从这个意义上讲,它实际上只是一个字节串的模板,而不是一串字符.