0

我需要处理一些 Win-1251 编码的文本(8 位编码,对西里尔文使用 128..255 中的一些)。据我所知,创建 C 时考虑了 7 位 ASCII,没有明确支持 127 以上的单字节字符。所以我有几个问题:

  • 哪种类型更适合此文本:char[]unsigned char[]?
  • 如果我使用unsigned char[]内置函数 ( strlen, strcmp),编译器会警告隐式转换为char*. 这样的演员阵容能打破什么吗?我应该重新实现一些函数来unsigned char明确支持字符串吗?
4

1 回答 1

-1

C 具有三种不同的字符类型,signed charunsigned charchar,它们可以是有符号的也可以是无符号的。对于字符串,您应该只使用char,因为它可以与所有内置函数一起使用。它们也适用于数值大于 127 的字符。使用char.

于 2020-10-21T22:17:20.183 回答