c++字符char转换为wchar(wcstombs)osg

5 篇文章 0 订阅

wcstombs示例:

/* wcstombs example */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* wcstombs, wchar_t(C) */

int main() {
  const wchar_t str[] = L"wcstombs example";
  char buffer[32];
  int ret;

  printf ("wchar_t string: %ls \n",str);

  ret = wcstombs ( buffer, str, sizeof(buffer) );
  if (ret==32) buffer[31]='\0';
  if (ret) printf ("multibyte string: %s \n",buffer);

  return 0;
}

输出:

  • wchar_t string: wcstombs example
  • multibyte string: wcstombs example
	//mbstowcs == multibyte string to wide character string
	int requiredSize = mbstowcs(NULL, string, 0);    //如果mbstowcs第一参数为NULL那么返回字符串的数目  requiredSize为string转为宽字符后的宽字符字符数,注意这个数目不包含结尾符
	wchar_t* wText = new wchar_t[requiredSize + 1];    //+1以保留一个位置放置结尾符 0/
	mbstowcs(wText, string, requiredSize + 1);//由char转换成wchar类型
void ArrowMark::createContent(osgText::Text& textObject, const char* string)  //将多字节字符转化为宽字符
{
	//mbstowcs == multibyte string to wide character string
	int requiredSize = mbstowcs(NULL, string, 0);    //如果mbstowcs第一参数为NULL那么返回字符串的数目  requiredSize为string转为宽字符后的宽字符字符数,注意这个数目不包含结尾符
	wchar_t* wText = new wchar_t[requiredSize + 1];    //+1以保留一个位置放置结尾符 0/
	mbstowcs(wText, string, requiredSize + 1);//由char转换成wchar类型
	textObject.setText(wText);  //用宽字节字符设置Text对象的内容
	delete wText;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

磊磊cpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值