首页 > 编程语言 >C++ 类型转换

C++ 类型转换

时间:2022-08-17 14:12:48浏览次数:55  
标签:类型转换 std const string C++ char str wchar

1、std::string 转 int

string valStr = "IconVisible";
int valInt = atoi(valStr.c_str());

 

2、std::string 转 char*

string valStr = "IconVisible";

const char* valStr_c = valStr.c_str();

 

 3、int 转 string

int StartFilterTimes = 0;

string str = to_string(StartFilterTimes);

 

4、char* 转 string

const char * c = "test";

string str = (string)c;

 

5、char* 转 wchar*

wchar_t* Common::charToWChar(const char* c) {

  const size_t cSize = strlen(c) + 1;
  wchar_t* wc = new wchar_t[cSize];
  mbstowcs(wc, c, cSize);

  return wc;
}

 

6、wstring 转 string

std::string Common::WString2String(const std::wstring& ws)
{
  std::string strLocale = setlocale(LC_ALL, "");
  const wchar_t* wchSrc = ws.c_str();
  size_t nDestSize = wcstombs(NULL, wchSrc, 0) + 1;
  char* chDest = new char[nDestSize];
  memset(chDest, 0, nDestSize);
  wcstombs(chDest, wchSrc, nDestSize);
  std::string strResult = chDest;
  delete[]chDest;
  setlocale(LC_ALL, strLocale.c_str());
  return strResult;
}

 

7、string 转 LPCWSTR

LPCWSTR stringToLPCWSTR(std::string orig)
{
  size_t origsize = orig.length() + 1;
  const size_t newsize = 100;
  size_t convertedChars = 0;
  wchar_t* wcstring = (wchar_t*)malloc(sizeof(wchar_t) * (orig.length() - 1));
  mbstowcs_s(&convertedChars, wcstring, origsize, orig.c_str(), _TRUNCATE);

  return wcstring;
}

标签:类型转换,std,const,string,C++,char,str,wchar
From: https://www.cnblogs.com/wa502/p/16594213.html

相关文章

  • C++ 获得`wchar_t *`的长度
    sizeof(wchar_t);如果你想知道一个wchar_t串(wchar_t*)的大小,要使用wcslen:1size_twcslen(constwchar_t*ws);假设你想终止的C风格的字符串,你有两个选择空的长......
  • 2.C/C++的const
    1.C语言的const修饰的变量都有空间2.C语言的const修饰的全局变量具有外部链接属性3.C++语言的const修饰的变量有时有空间,有时没有空间(发生常量折叠,且没有对变量进行取址......
  • C++primer练习14.1-9
    练习14.1在什么时候情况下重载的运算符与内置运算符有所区别?在什么时候重载的运算符又与内置运算符一样::为类设计的运算符,尽量重载的运算符含义不要改变,如+还是加法练习1......
  • C++ typeid获取类型信息
    #include<iostream>#include<typeinfo>intmain(){inti;conststd::type_info&info=typeid(int);std::cout<<"typeid"<<info.name()<<std::......
  • C++ beginner(2)- variable
    initializationintx{};//xisfilledwithzeroes,sox==0intx{123};intx(123);inta,b=123,c{},d{456},e(789);int*x,y,z;==int*x;inty;int......
  • C++ 调整终端界面的大小
    #include<iostream>#include<string>#include<windows.h>#defineWIDTH40#defineHEIGHT15usingnamespacestd;voidinit(){//初始化终端界面char......
  • uec++ 1天
    用来让不是商店下载的ue进行注册        ufunction(exec)用来实现引擎中实现函数uclass staticclass 进行虚幻模拟反射机制 ......
  • C++primer练习13.55-58
    练习13.55为你的StrBlob添加一个右值引用版本的Push_backvoidStrBlob::push_back(string&&s){data->push_back(std::move(s));}练习13.56如果sorted定义如下,会发生......
  • C++primer练习13.49-54
    练习13.49为你的String类添加一个移动构造函数和一个移动赋值运算符String(String&&a):elements(std::move(a.elements)),first_free(std::move(a.first_free)),cap(st......
  • c\c++实现天气数据获取
    #include<iostream>#include<WinSock2.h>#pragmacomment(lib,"ws2_32.lib")usingnamespacestd;constchar*host="api.seniverse.com";constchar*key="......