📣📣📣📣📣📣📣📣
✏️作者主页:枫霜剑客
📋 系列专栏:C++实战宝典
🌲上一篇: VS2019加载解决方案时不能自动打开之前的文档(回忆消失)
📣📣📣📣📣📣📣📣
🎍逐梦编程,让中华屹立世界之巅。
🎍简单的事情重复做,重复的事情用心做,用心的事情坚持做;
文章目录
- 前言
- 一、char*->string
- 二、wchar_t*->wstring
- 三、string->char* 与 wstring->char*
- 四、wstring->wchar_t*
- 五、char*->UnicodeString->wstring, wchar_t*
- 六、wchar_t*->AnsiString->string, char*
- 总结
- 壁纸(风过无痕)
前言
C++实战宝典系列篇幅目前知识点较少,所以博主新增一篇常用的知识点供大家学习,
本期将为大家介绍C++的string字符串不同类型间转换;
一、char*->string
直接转换,代码如下(示例):
const char* newname;
string temp = newname;
string temp2(newname);
二、wchar_t*->wstring
直接转换,代码如下(示例):
const wchar_t* newname;
wstring temp = newname;
wstring temp2(newname);
三、string->char* 与 wstring->char*
直接转换,代码如下(示例):
//方法一:
string temp;
const char* newname = temp.c_str();
//方法二:
struct IPAddress{
std::wstring hostname;
std::vector<std::wstring> ips;
};
scripting::IPAddress dns = (*pPreloadDns)[i];
AnsiString strA = dns.hostname.c_str();
char * hn = strA.c_str();
//方法三(最安全转换)
String str="123456";
int len=str.Length();
char *cp=new char[len+1];
StrPCopy(cp, str);
四、wstring->wchar_t*
直接转换,代码如下(示例):
//方法一:
wstring temp;
wchar_t* newname = temp.c_str();
//方法二(1):
struct IPAddress{
std::wstring hostname;
std::vector<std::wstring> ips;
};
scripting::IPAddress dns = (*pPreloadDns)[i];
UnicodeString strA = dns.hostname.c_str();
//char * hn = strA.c_str();
wchar_t * hn = strA.c_str();
//方法二(2):
struct IPAddress{
std::wstring hostname;
std::vector<std::wstring> ips;
};
scripting::IPAddress dns = (*pPreloadDns)[i];
AnsiString strA = dns.hostname.c_str();
//char * hn = strA.c_str();
wchar_t * hn = ANSIToUnicode(strA.c_str());
五、char*->UnicodeString->wstring, wchar_t*
直接转换,代码如下(示例):
UnicodeString temp(inet_ntoa(pAddr->sin_addr)) ; //inet_ntoa returns char*
std::wstring addr(temp.c_str());
wchar_t* addr2 = temp.c_str();
log_debug(_T("set connection ip:") << addr); con->setIP(addr);
六、wchar_t*->AnsiString->string, char*
直接转换,代码如下(示例):
wchar_t* str = wstring.c_str();
AnsiString temp(str ) ; //inet_ntoa returns char*
std::string addr(temp.c_str());
char* addr2 = temp.c_str();
log_debug(_T("set connection ip:") << addr); con->setIP(addr);
总结
以上就是今天要讲的内容,C++是一门面向对象的语言,学习时需要理解每个对象的作用,字符串也是一门比较深层次的学问,希望各位小伙伴好好掌握,做到得心应手。