写这篇博文的初衷就是让大家更好用类型转换。不然每次都找很麻烦,希望大家可以在下面添加,不断累积。

期间引用了多名博主,整合一波

1.const char * 转 wchar_t*类型:

//const char*转wchar_t*
wchar_t* charToWChart(const char *str)
{int length = strlen(str)+1;wchar_t *t = (wchar_t*)malloc(sizeof(wchar_t)*length);memset(t,0,length*sizeof(wchar_t));MultiByteToWideChar(CP_ACP,0,str,strlen(str),t,length);return t;
}

2.std::string字符串替换

//替换字符串
//@param: pszSrc:原先字符串
//@param: pszOld:需要替换的字符串
//@param: pszNew:替换的新字符串
//@return:替换完成的字符串
static std::string replace_str(const char *pszSrc, const char *pszOld, const char *pszNew)
{std::string strContent, strTemp;strContent.assign( pszSrc );std::string::size_type nPos = 0;while( true ){nPos = strContent.find(pszOld, nPos);strTemp = strContent.substr(nPos+strlen(pszOld), strContent.length());if ( nPos == std::string::npos ){break;}strContent.replace(nPos,strContent.length(), pszNew );strContent.append(strTemp);nPos +=strlen(pszNew) - strlen(pszOld)+1; //防止重复替换 避免死循环}return strContent;
}

3.char*转std::wstring

std::wstring charToWstring(char* szIn)
{int length = MultiByteToWideChar(CP_ACP, 0, szIn, -1, NULL, 0);WCHAR* buf = new WCHAR[length+1];ZeroMemory(buf, (length + 1) * sizeof(WCHAR));MultiByteToWideChar(CP_ACP, 0, szIn, -1, buf, length);std::wstring strRet(buf);delete[] buf;return strRet;
}

4.wchar_t*转std::string

std::string w2a(wchar_t* szIn)
{int nSize = WideCharToMultiByte(CP_ACP, 0, szIn, -1, NULL, NULL, NULL, NULL);char* buffer = new char[nSize+1];ZeroMemory(buffer,nSize+1);WideCharToMultiByte(CP_ACP, 0, szIn, -1, buffer, nSize, NULL, NULL);std::string strRet(buffer);delete[] buffer;return strRet;
}

5.std::string判断结尾是否包含某字符:

//判断字符串结尾是否包含某字符;
//[in]s:字符串,[in]sub:包含字符
//return:1:包含 0:包含
bool endsWith(std::string s, std::string sub) {return s.rfind(sub) == (s.length() - sub.length()) ? true : false;
}

6.分割字符串

//分割字符串
std::vector<std::string> split_str(std::string str, std::string pat)
{std::vector<std::string> bufStr;while (true){int index = str.find(pat);std::string subStr = str.substr(0, index);if (!subStr.empty())bufStr.push_back(subStr);str.erase(0, index + pat.size());if (index == -1)break;}return bufStr;
}

C++ 各种数据类型转换总结(不断更新中.....)相关推荐

  1. SQL Server 2008处理隐式数据类型转换在执行计划中的增强

    关注我们获得更多内容 作者 | 邹建,资深数据库专家,精通各项 SQL Server 技术,具有丰富的管理.维护.优化能力以及业务应用经验.他一直热心于技术知识的分享.传播,持续活跃在 CSDN 和 ...

  2. 数据库SQL语言学习--数据查询(持续更新中)

    数据库SQL语言学习--数据查询(持续更新中) 上机练习1 1.              启动SQL Server 2008中的 SQL Server Management Studio. 2.   ...

  3. ECharts数据可视化项目-大屏数据可视化【持续更新中】

    ECharts数据可视化项目-大屏数据可视化[持续更新中] 文章目录 ECharts数据可视化项目-大屏数据可视化[持续更新中] 一. 数据可视化ECharts使用 二.技术栈 三.数据可视化 四.可 ...

  4. HQL语句中数据类型转换,及hibernate中createQuery执行hql报错

    一.HQL语句中数据类型转换: 我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基 ...

  5. PHP中数据类型转换有多少种,PHP中数据类型转换的三种方式

    PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形 2.(float).(double).(real):转换成浮点型 3.(string): ...

  6. 数据仓库在HDFS上存储数据的路径(持续更新中)

    组件名称 WEB UI路径 HDFS 路径 Hive内表t1 http://desktop:9870/explorer.html#/user/hive/warehouse/t1 hdfs://Desk ...

  7. java中数据类型转换、ASCII编码

    数据类型转换: JAVA语言中要求参与计算的数据类型要保持一致,如果不一致则会发生数据类型转换,数据类型转换可分为:自动类型转换(隐式转换)和强制类型转换(显式转换). 自动类型转换:代码不需要特殊处 ...

  8. c++interesting转换为uint_1.6运算符及数据类型转换

    运算符 1. 算数运算符 算数运算符就像平时计算用的加减乘除,用于对参数进行各种计算.如: a = 20 b = 10 print(a+b) # 30 print(a-b) # 10 print(a* ...

  9. matlab强制数据类型转换

    >> x=uint8(8); >> class(x) %查看类型 ans = uint8 >> y=double(x); %转双精度 >> class( ...

  10. number类型转换java_Number()数据类型转换

    Number() 如果是 Boolean 值, 和. 如果是数字值,只是简单的传入和返回. 如果是 . 如果是 undefined,返回NaN. 如果是字符串,遵循下列规则: 如果字符串中只包含数字( ...

最新文章

  1. 机器人流程自动化技术的新发展
  2. C专家编程--读书笔记九 再论数组
  3. 指针、数组、函数阶段小结
  4. 吴恩达机器学习:逻辑回归
  5. Linux下JRE添加字体
  6. lottie动画_极光小课堂 | 用 Lottie 实现超炫酷动画
  7. 【Xamarin.Android】探索android的底部导航视图
  8. BaseAdapter使用的三种形式,逗比式,普通式,文艺式
  9. python差异性分析_能用SPSS进行差异显著性分析吗
  10. 腾讯「文涌 (Effidit)」2.0版发布,打造更懂写作的智能助手
  11. github python100天_GitHub - CherryXuan/Python-100-Days: Python - 100天从新手到大师
  12. 【python】类型约束(类型提示的作用)
  13. 美的集团的命,智能家居来续?
  14. C++OpenCV系统学习(17)——图像分割与抠图(4)Grabcut
  15. 通过文件url地址获取base64;通过图片url地址获取base64;js获取文件的base64
  16. 编程之美-翻烙饼问题
  17. column-count瀑布流导致元素被截断-解决方法
  18. 微信怎么找城市服务器,微信城市服务在哪里 怎么开通使用
  19. 华为MPLSVPN与GRE隧道配置练习
  20. Python: 每日一题之平方和

热门文章

  1. 跨域问题是怎样造成的
  2. 基于SpringBoot,来实现MySQL读写分离技术
  3. 单个对象和多个对象在内存中的结构图
  4. javaScript调用函数失败
  5. Federated Machine Learning: Concept and Applications
  6. Redis哈希表总结
  7. jQuery 源码解析一:jQuery 类库整体架构设计解析
  8. ListCtrl常用操作
  9. C中指针和数组引发的探索二
  10. linux下intel无线网卡安装失败,ubuntu 16.04无法安装无线网卡驱动