操纵多字节字符串

时间:2014-01-16 07:38:23

标签: c++ c string

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

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

对多字节字符进行编码有哪些方法?

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

我很困惑。请帮帮我。请使用代码示例来支持您的答案。另外,请用C ++的上下文解释一下,因为我正在学习C ++。也有这种语言的初级经验。

提前致谢。

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

2 个答案:

答案 0 :(得分:1)

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

C wchar_t中也定义了<wchar.h>

答案 1 :(得分:0)

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

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