C错误“不完整的通用字符名称\ u”

时间:2013-06-04 13:21:36

标签: c

我遇到此错误的问题。请注意,我对c编程有点新意,而且不是偶然的错误。

这是我的错误:

incomplete universal character name \u

这是我的代码(部分代码):

while( (ch=getchar())!=EOF )
{
    ++caractere;
    switch(ch)
    {
        case '\n': ++linii;break;
        case '\t': ++cuvinte;break;
        case ' ': uiWord=YES;break;
        case '\u': if(uiWord==YES)
        {
            ++cuvinte;
            uiWord=NO;
        }
        break;
    }

}

谁能告诉我怎样才能解决这个问题?感谢。

3 个答案:

答案 0 :(得分:5)

\u与id(十六进制代码)一起使用来表示unicode字符,例如\u20AC的代码。它本身不可能。

答案 1 :(得分:1)

'\ u'表示一个unicode字符,在代码中写错了,正确的格式是,例如:

'\ u2006'

\ u后面应该跟4个数字代表字符。

答案 2 :(得分:1)

稍微扩展一些其他答案:当你使用转义序列时,它被视为一个字符。 \n是一个字符,尽管要键入两次键击。

随后,\u1234是计算机视角的一个字符。 \u没有意义:你已经给了它半个字符代码。

至于你如何解决这个问题,这取决于你想做什么。如果您只想捕获一个特定的unicode字符,请将switch语句更改为case '\u1234':,其中1234是字符代码点的十六进制表示形式。

相反,如果您想要处理不能用ASCII表示的字符,那么您可能需要类似的内容:

if(ch < 128)
{
// Check for \n, \t and space here
}
else
{
// Unicode or ANSI codepage
}