【发布时间】:2020-04-09 19:26:27
【问题描述】:
所以我试图打印一个带有一些扩展特殊字符的字母,但我得到的只是警告和错误的字母
warning: multi-character character constant [-Wmultichar]
数组
char letters[30] = {
'a', 'b', 'c','č','ć', 'd','dž','đ', 'e', 'f', 'g', 'h',
'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'r', 's','š', 't', 'u', 'v', 'w', 'z', 'ž' };
for (i = 0; i < 30; i++)
printf("%c", letters[i]);
【问题讨论】:
-
请发布您的整个程序。
-
'dž'?这不是一个字符。 -
'č'-->"č"[0], "č"[1],其余多字节字符相同 -
您需要某种形式的“宽字符”,也许是 POSIX
<wchar.h>? pubs.opengroup.org/onlinepubs/9699919799/basedefs/wchar.h.html -
卢卡·米利切维奇,
wchar_t letters[] = {L'a', L'b', L'c', L'č', L'ć'}; for (int i = 0; letters[i]; i++) { wprintf(L"%c", letters[i]); }适合你吗?
标签: c arrays extended-ascii