获取字符串中的字符数
Get number of characters in string?
我有一个应用程序,接受最多255个字符的UTF-8字符串。
如果字符是ASCII,(字符数==字节大小)
例如,如果字符不全是ASCII,并且包含日语字母,给定字节大小,我如何获取字符串中的字符数?
输入:char *data, int bytes_no
输出:int char_no
您可以使用mblen
来计算长度或使用mbstowcs
来源:
http://www.cplusplus.com/reference/cstdlib/mblen/
http://www.cl.cam.ac.uk/~mgk25/unicode.html#mod
可以使用mbstowcs(NULL,s,0)。这适用于UTF-8,就像适用于任何其他受支持的文件一样编码,只要选择了适当的语言环境。A.计算UTF-8中字符数的硬连线技术字符串是对除0x80–0xBF范围内的字节之外的所有字节进行计数,因为这些只是延续字节,而不是它们的字符拥有然而,令人惊讶的是,计数字符的需求很少出现在应用程序中。
您可以将unicode字符保存在宽字符wchar_t
中
没有"字符"这回事。
或者,更准确地说,什么是"性格"取决于你问谁。
如果你查看Unicode词汇表,你会发现这个术语有几个不完全兼容的含义。á
作为书面语言中具有语义值(第一含义)的最小组成部分,是单个字符。如果取á
并计算其中Unicode字符编码(第三种含义)的基本编码单位,则可能会得到一个或两个,这取决于使用的确切表示(归一化或非归一化)。
也许不是。这是一个非常复杂的话题,没有人真正知道他们在说什么。
归根结底,您可能需要计算代码点,这与字符(意思是3)基本相同。mblen
是实现这一点的一种方法,前提是您当前的语言环境具有UTF-8编码。现代C++提供了更多类似C++的方法,但是,在一些流行的实现中不支持这些方法。Boost有它自己的东西,而且更便携。还有像ICU这样的专门库,如果你的需求比计算字符复杂得多,你可能需要考虑。
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 将 NULL 与 C 的字符* 字符串一起使用
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法将常量字符字符串传递给模板类
- 如何组合一个宽字符字符串,中间插入一些空字符
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 从给定索引返回子字符字符串的函数
- 字符 [](c 字符串)的初始化标准
- 如何将字符字符串用作数学运算符
- 将 Unicode 字符/字符串写入文件
- C++,字符* 字符串修改
- 如何有效地用不同的整数元素替换字符字符串的元素
- C++:如果我们在字符串中添加一些整数,为什么它会从开头删除该数量的字符?(字符串 + 整数)
- strcpy正在复制sth字符i字符串.如何解决此错误
- 在C++中将双精度转换为字符*/字符串
- C 中的宽字符字符串
- 如何提取C 中的字符/字符串之间的字符串
- 无法将字符/字符串转换为int
- 带有指针的反转字符字符串
- 反转字符串中的 n 个字符(字符串中没有空格),而不使用 c++ 中的内置函数