繁体   English   中英

操纵多字节字符串

[英]Manipulating strings of multibyte characters

我是新手C程序员。 我正在尝试编写一个C程序,它有时处理英文文本(适合8位字符),有时还处理日文文本(需要16位)。

如果我使用相同的代码操纵任一国家的文本,我是否需要为每个字符留出16位,甚至是英文文本?

有哪些编码多字节字符的方法?

如果编译器不能紧凑地存储多字节字符串怎么办?

我糊涂了。 请帮帮我。 请使用代码示例来支持您的答案。 另外,请用C ++的上下文解释相同的内容,因为我也在学习C ++,并且在这门语言中也有初学者的经验。

提前致谢。

这是几天前我的一位熟人问的面试问题。

在C ++中,您可以使用std::wstring ,它使用wchar_t作为基础char类型。 在C ++ 11中,您还可以使用std::u16stringstd::u32string具体取决于您需要的字符的存储量。

C还在<wchar.h>定义了wchar_t

好的,经过一些研究后,我想我得到了答案:

mbstowcs(“多字节字符串到宽字符串”)和wcstombs(“宽字符串到多字节字符串”)在wchar_t数组之间转换(其中每个字符占16位,或两个字节)和多字节字符串(其中单个字符是如果可能,存储在一个字节中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM