在C语言中是否有办法计算以下东欧字符“‰
”所需的字节数? sizeof
函数不起作用,因为它显示char
的标准大小。我知道这个字符需要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中,s
和t
为1. a[0]
为137。
另外,我认为正在寻找的是mblen()