C:非 ASCII 文本数据的 char 与 unsigned char

标签 c string unsigned-char

这个问题:

What is an unsigned char?

很好地讨论了 C 中的 charunsigned charsigned char

但是,它没有直接说明非 ASCII 文本应该使用什么。因此,如果我有一个字节数组,表示采用 UTF-8 或 Big5(或有时是 ASCII)等任意字符集的文本,我应该使用 char 还是 unsigned char?

我倾向于使用 char,否则当数组为 ASCII 并且我使用 strlen 时,gcc 会警告我有关指针的符号性。但我想知道什么是正确的。

最佳答案

使用普通的char来表示字符。当您想要涵盖从 -127 到 +127 的值的有符号整数类型时,请使用 signed char。将 unsigned char 用于具有值范围从 0 到 255 的无符号整数类型。

关于C:非 ASCII 文本数据的 char 与 unsigned char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541072/

相关文章:

c - 使用 fgets 读取 'c' 中的文件

c# - 无法将字符串转换为我创建的枚举类型

c - 如何在 C 程序中将十六进制值赋给 unsigned char 变量

javascript - 连接 PHP preg_replace 函数

python - 计算列表中所有元素与单个句子的相似度

c++ - 将 uint8_t 数组转换为字符串

iphone - 如何增加/减少 Unsigned Char?

c - 关于 printf 中的字符串

c - 覆盖c中动态分配数组中的字符

c - 具有 void 双指针输出的函数