如何获得字符串输出的宽度?

时间:2019-01-24 16:12:20

标签: c++ string

考虑

#include <string>
#include <iostream>

int main()
{ 
    std::string test="αλφα";
    std::cout << "size() of '" << test << "' = " << test.size() << std::endl;
}

产生

  

size()of'αλφα'= 8

如何使用C ++标准库查找通过写入字符串(即上例中的4)将产生的输出的宽度?

1 个答案:

答案 0 :(得分:1)

这里的问题与与字符串关联的 encoding 有关。

在我看来,这就像UTF-8编码(第一个字符是不是小写的'a')。在这种编码中,您提供的字符各占两个字节,这就是答案。

C ++ 11标准广泛支持utf-8编码(优雅地,utf-8在任何文本流 cf。 Windows Unicode中都没有零字节)-您可以使用std::string尽管长度通常会被低估-但是直接在编辑器中创建该类型的字符串文字时必须小心。

更多阅读内容:How to use Unicode (UTF-8) in C++