今天我学习了一些C++基础知识并开始了解wchar_t.我无法弄清楚,为什么我们实际上需要这种数据类型,我该如何使用它?
它们唯一的功能似乎是防止指定扩展的ASCII字符或部分UTF-8代码点.它们仍然存储在一个固定宽度的8位字符(根据我的理解,这是几乎所有用例中处理UTF-8的正确和最佳方式),因此它们不支持非ASCII字符所有.到底是怎么回事?
(实际上我并不完全确定我理解UTF-8字符串文字的需要.我想这是编译器担心Unicode字符串加上Unicode验证的奇怪/模糊事物的担心吗?)
想问一下字符串是以空字符结尾的字符数组是否可以在 c 中互换。喜欢
char string3[] = "abc";
char string4[4] = {'a','b','c','\0'};
if(!strcmp(string3,string4)){
printf("yes");
}
Run Code Online (Sandbox Code Playgroud)
连strcmp也给Yes。所以,只有初始化的区别,或者在深处有一些区别。