方法名:wchar_t * Str(wchar_t * string) ; 条件:传入参数string为UTF-8编码的字符串; 预实现如下功能:
替换参数string中的字(例如,将string中的“郭”,全替换为“嘉”)。限制:非MFC的dll,extern“C";传入参数,在VC++6.0界面中全显示—?(传入...
替换参数string中的字(例如,将string中的“郭”,全替换为“嘉”)。
限制:非MFC的dll,extern “C";
传入参数,在VC++ 6.0界面中全显示—?(传入参数,替换字符均为阿拉伯文)
目前思路如下:
1、将传入字符串转换为Unicode码wchar_t数组(例如,”你“存为0x4F60);
2、将wchar_t数组中替换目标的Unicode码,换成要替换的Unicode码;
3、将Unicode码wchar_t数组转换为wchar_t 字符串,返回。(是否还要转UTF-8?)
搜罗到的转换方法如下:
1、汉字转Unicode
#include<stdio.h>
#include<wchar.h>
#include<locale.h>
wchar_t wc;
int main()
{
setlocale(LC_ALL,"");//设置为本地区域
while (1) {
wc = getwchar();
if(wc != L'\n')
wprintf(L"0X%4X==%c\n",wc,wc);
}
}
2、Unicode转汉字
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
size_t cch;
char psz[1024];
wchar_t pwsz[] = {0x56FD, 0};
setlocale(LC_ALL, "");
cch = wcstombs(psz, pwsz, 4);
if (cch != 0 && cch != -1) {
printf("%d\n", cch);
printf("%s", psz);
}
return 0;
}
小弟对wchar_t操作不慎熟练,求高手给写一个,或指导下,是否还有其他更合适的方法。一点积分送上,不成敬意。 展开
限制:非MFC的dll,extern “C";
传入参数,在VC++ 6.0界面中全显示—?(传入参数,替换字符均为阿拉伯文)
目前思路如下:
1、将传入字符串转换为Unicode码wchar_t数组(例如,”你“存为0x4F60);
2、将wchar_t数组中替换目标的Unicode码,换成要替换的Unicode码;
3、将Unicode码wchar_t数组转换为wchar_t 字符串,返回。(是否还要转UTF-8?)
搜罗到的转换方法如下:
1、汉字转Unicode
#include<stdio.h>
#include<wchar.h>
#include<locale.h>
wchar_t wc;
int main()
{
setlocale(LC_ALL,"");//设置为本地区域
while (1) {
wc = getwchar();
if(wc != L'\n')
wprintf(L"0X%4X==%c\n",wc,wc);
}
}
2、Unicode转汉字
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
size_t cch;
char psz[1024];
wchar_t pwsz[] = {0x56FD, 0};
setlocale(LC_ALL, "");
cch = wcstombs(psz, pwsz, 4);
if (cch != 0 && cch != -1) {
printf("%d\n", cch);
printf("%s", psz);
}
return 0;
}
小弟对wchar_t操作不慎熟练,求高手给写一个,或指导下,是否还有其他更合适的方法。一点积分送上,不成敬意。 展开
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码私信给你了 查收 哈哈
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询