原理详见原文链接,大佬讲的非常好,给了我很大启发。
原文链接 C语言 深度探究C语言中的多字节字符
注意
对编译器有一定要求(devc不行),最好用最新版的编译器,我用的是菜鸟工具。
下面提供一个wchar_t类型的示例
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>
int main()
{
setlocale(LC_ALL,"");//utf-8一个中文占三字节
int cont=0;
wchar_t *a=L"春天";
char b[20];
char c[20]={"你好再见"};
cont=wcstombs(b,a,20);//宽字符转化成多字节字符
c[0]=b[0];
c[1]=b[1];
c[2]=b[2];
printf("%s",c);
return 0;
}
//输出结果 春好再见
再来个char类型指针的示例
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>
int main()
{
char *a="春天";
char c[20]={"你好再见"};
c[0]=*(a);
c[1]=*(a+1);
c[2]=*(a+2);
printf("%s",c);
return 0;
}
//春好再见
其他情况可以触类旁通啦