【发布时间】:2014-07-01 06:14:28
【问题描述】:
我想要一个希腊字母数组,这就是我要做的:
wchar_t pcletters[30] = {'α' , 'ά' , 'β' , 'γ' , 'δ' , 'ε' , 'ζ' , 'η', 'θ' , 'ι' , 'κ' , 'λ' , 'μ' , 'ν','ξ' , 'ο' , 'π' , 'ρ' , 'σ' , 'τ' , 'υ' , 'φ' , 'χ' , 'ψ' , 'ω', 'έ' , 'ή' , 'ί' , 'ό' , 'ύ' , 'ώ'} ;
我还包括<locale.h> 并有一行setlocale(LC_CTYPE, "") .
但是我收到警告警告:多字符字符常量 [-Wmultichar]。 此外,当我通过以下方式检查其中一个字母是否在用户输入中时:
if (userword[i] == pcletters[j]) {//do stuff}
它似乎不起作用。
- 为什么我会收到此警告?
- 有没有办法以能够比较的方式改变pcletters
userword[i] == pcletters[j]
注意:userword 的定义如下:wchar_t userword[40]。
【问题讨论】:
-
我觉得你需要
wchar_t pcletters[30] = {L'α', L'ά', L'β', L'γ', ... -
我认为希腊字母表是一个多字节字符字母表,这意味着一个
char不足以容纳一个字母。西班牙语反向问号也是如此(这可能导致 addlashes 的安全失败)。