16-2.c
来自「《linux应用开发技术详解》的配套代码」· C语言 代码 · 共 37 行
C
37 行
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
char *string = "测试locale的软件!";
void main()
{
int i, l, length;
char *ptr;
char cbuf[128];
wchar_t wcbuf[128];
. setlocale(LC_ALL, "");
/* MB_CUR_MAX check */
printf("MB_CUR_MAX %d\n", MB_CUR_MAX);
length = strlen(string);
printf("string %s, length %d\n", string, length);
/* mbstowcs() */
l = mbstowcs(wcbuf, string, 128);
printf("mbstowcs() → num %d,", l);
for (i = 0; i < l; i++) {
printf(" %x", wcbuf[i]);
}
printf("\n");
/* wcstombs() */
l = wcstombs(cbuf, wcbuf, 128);
printf("wcstombs() → length %d, %s\n", l, cbuf);
/* mblen() check */
for (ptr = string; *ptr; ) {
l = mblen(ptr, length);
mbtowc(wcbuf, ptr, length);
printf("ptr %s, mblen %d, wchar %x\n", ptr, l, wcbuf[0]);
if (l <= 0) {
break;
}
ptr += l;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?