有没有办法计算以下东欧角色所需的字节数?

时间:2013-03-01 07:05:24

标签: c character-encoding sizeof

在C语言中是否有办法计算以下东欧字符“”所需的字节数? sizeof函数不起作用,因为它显示char的标准大小。我知道这个字符需要3个字节,但是我需要以编程方式获得它吗?

3 个答案:

答案 0 :(得分:4)

代码:

 printf("%d\n",(int)strlen("‰")); 

返回值:

 3

答案 1 :(得分:1)

正如Aki所建议你可以strlen,或者你可以用这种方式计算字节数:

#include <stdio.h>

int fn(const char *s)
{
    int n = 0;

    if (*s != '\0') {
        do {
            n++;
            s++;
        } while ((*s & 0xc0) == 0x80);
    }
    return n;
}

int main(void)
{
    printf("%d\n", fn("‰"));
    return 0;
}

答案 2 :(得分:0)

sizeof可以工作。我想用:

unsigned char a[]="‰"; 
size_t s=sizeof(a)-1;
size_t t=strlen((char*)a);

但在VC2012中,st为1. a[0]为137。 另外,我认为正在寻找的是mblen()