考虑
#include <string>
#include <iostream>
int main()
{
std::string test="αλφα";
std::cout << "size() of '" << test << "' = " << test.size() << std::endl;
}
产生
size()of'αλφα'= 8
如何使用C ++标准库查找通过写入字符串(即上例中的4)将产生的输出的宽度?
答案 0 :(得分:1)
这里的问题与与字符串关联的 encoding 有关。
在我看来,这就像UTF-8编码(第一个字符是不是小写的'a'
)。在这种编码中,您提供的字符各占两个字节,这就是答案。
C ++ 11标准广泛支持utf-8编码(优雅地,utf-8在任何文本流 cf。 Windows Unicode中都没有零字节)-您可以使用std::string
尽管长度通常会被低估-但是直接在编辑器中创建该类型的字符串文字时必须小心。