每次我执行类似于以下情况的操作时,我都会收到多字符警告。
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/