c - 如何检查一个字符是否是 C 中的扩展 ascii 字符?

标签 c ascii

每次我执行类似于以下情况的操作时,我都会收到多字符警告。

    char str[] = "León";

    if(str[2] == 'ó') printf(true);

我该如何解决这个问题?

最佳答案

除非您平台上的编码使得'ó'可以放入char'ó' 是一个多字符常量。从您收到的消息来看,您的平台上似乎是后者。多字符常量的值是实现定义的。换句话说,数值的选择取决于实现,有一些限制(例如,它必须在您平台上的 char 范围之外)。

可悲的是,当您编写 char str[] = "León"; 时,第三个元素将被转换为 char,使用 narrowing转换,或分解为多个char连接char[] 数组。因此,尝试将其与 'ó' 进行比较将是徒劳的。

关于c - 如何检查一个字符是否是 C 中的扩展 ascii 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561878/

相关文章:

c - 学校编程类问题(Visual Studio)

javascript - 间断和非间断空格 ascii 字符的区别

python - 如何在 python 中将十六进制字符串 "\x89PNG"转换为纯文本

java - 将小写字母递减为仅小写字母

c - 我们可以读取并错误注入(inject)另一个线程的程序计数器吗?

c - 使用系统命令传递参数

c - Gtk+ accel组回调函数问题

c - c中的阻塞进程

python - 读取大型机 EBCDIC 文件

将 ASCII 码转换为字符值