|
|
检测点9-3
如果要让对象pmbs指向一个采用GBK编码的字符串并辨别这个字符串里有几个多字节字符,应当如何修改源文件c0902.c?如何编译修改后的程序?
参考答案:
# include <stdio.h>
# include <locale.h>
# include <string.h>
# include <stdlib.h>
int main (void)
{
setlocale (LC_NUMERIC, "german"); //S1
printf ("%.2f\n", 3.14); //S2
char * pmbs = "c语言";
int len = 0, r = 0;
setlocale (LC_CTYPE, "chinese.936"); //S3
printf ("%zu\n", strlen (pmbs)); //S4
while ((len = mblen (pmbs += len, 4)) > 0) r ++; //S5
printf ("%d\n", r);
}
编译方法:
gcc c0903.c -fexec-charset=gbk
|
|