我是新手C程序员。我正在尝试编写一个C程序,它有时处理英文文本(适合8位字符),有时还处理日文文本(需要16位)。
我是否需要为每个字符留出16位,如果我使用相同的代码来操纵任一国家/地区的文本,我是否需要英文文本?
对多字节字符进行编码有哪些方法?
如果编译器无法紧凑地存储多字节字符串怎么办?
我很困惑。请帮帮我。请使用代码示例来支持您的答案。另外,请用C ++的上下文解释一下,因为我正在学习C ++。也有这种语言的初级经验。
提前致谢。
这是几天前我的一位熟人问的面试问题。
答案 0 :(得分:1)
在C ++中,您可以使用std::wstring
作为基础wchar_t
类型使用char
。在C ++ 11中,您还可以使用std::u16string
或std::u32string
,具体取决于您需要的字符的存储量。
C wchar_t
中也定义了<wchar.h>
。
答案 1 :(得分:0)
好的,经过一些研究后,我想我得到了答案:
mbstowcs(“多字节字符串到宽字符串”)和wcstombs(“宽字符串到多字节字符串”)在wchar_t数组之间转换(其中每个字符占用16位或两个字节)和多字节字符串(其中)如果可能,单个字符存储在一个字节中。)