当前位置: 首页 > news >正文

可变长字符串以及数字与字符串的互转

本文来自http://blog.csdn.net/hellogv/
//----------------------------------------------------------------------------------------------------------

//使用方法:

//先用string类型处理字符串,当要传递参数时(参数为LPCWSTR),才把string to wstring ,然后再传递wstring.c_str();

//-----------------------------------------------------------------------------------------------------------

#include <windows.h>

#include <atlbase.h>

#include <sstream>

#include <string>

using namespace std;



    string Int2Str(int i)

    {

        ostringstream os;

        os << i;

        return os.str();

    };



    int Str2Int(string str)

    {

        return atoi(str.c_str());

    }



    //------wstring to string

    string ws2s(wstring& inputws)

    {

        LPCWSTR pwszSrc=inputws.c_str();

        int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL);

        if (nLen<= 0) return std::string("");

        char* pszDst = new char[nLen];

        if (NULL == pszDst) return std::string("");

        WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL);

        pszDst[nLen -1] = 0;

        std::string strTemp(pszDst);

        delete [] pszDst;

        return strTemp;

    }



    //------string to wstring

    std::wstring s2ws(const string& s)

    {

        LPCSTR pszSrc=s.c_str();

        int nLen=s.size();

        int nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0);

        if(nSize <= 0) return NULL;

        WCHAR *pwszDst = new WCHAR[nSize+1];

        if( NULL == pwszDst) return NULL;

        MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize);

        pwszDst[nSize] = 0;

        if( pwszDst[0] == 0xFEFF) // skip Oxfeff

            for(int i = 0; i < nSize; i ++)

                pwszDst[i] = pwszDst[i+1];

        wstring wcharString(pwszDst);

        delete pwszDst;

        return wcharString;

   

};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • mac mysql可视化工具_tableau 连接mysql的操作步骤
  • python pprint_Python3内置模块之pprint让打印比print更美观
  • JBoss目录结构说明和功能介绍
  • jqgrid使用本地静态数据创建网格的例子_第68集 python机器学习:网格搜索管道中的属性...
  • 探讨C#2.0对象模型
  • XML文件转换成Word文件或者Excel文件
  • python excel数据处理_Excel的分列功能很强大?Python数据处理分析,pandas有更牛逼的...
  • datetime转int_Python实例PDF转JPG
  • 艰难的shader系统
  • visual studio 怎么生成coredump文件_如何在docker容器中生成core dump
  • 对信息系统集成项目管理的一点看法
  • 电子工程师之家_「德语学习」电气、电子、电力什么区别?
  • javascript操作radio的几种方法
  • arcengine遍历属性表_【Python@arcpy】python操作Excel与属性表批处理
  • ExtremeTable的导出问题
  • SegmentFault for Android 3.0 发布
  • 「译」Node.js Streams 基础
  • 【刷算法】求1+2+3+...+n
  • conda常用的命令
  • JDK9: 集成 Jshell 和 Maven 项目.
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • nodejs调试方法
  • react-native 安卓真机环境搭建
  • tab.js分享及浏览器兼容性问题汇总
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue--为什么data属性必须是一个函数
  • 半理解系列--Promise的进化史
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 坑!为什么View.startAnimation不起作用?
  • 入手阿里云新服务器的部署NODE
  • 数组大概知多少
  • 网页视频流m3u8/ts视频下载
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • #、%和$符号在OGNL表达式中经常出现
  • #70结构体案例1(导师,学生,成绩)
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $.ajax()
  • $.ajax()参数及用法
  • $L^p$ 调和函数恒为零
  • (06)Hive——正则表达式
  • (4)(4.6) Triducer
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (第二周)效能测试
  • (回溯) LeetCode 40. 组合总和II
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (一)80c52学习之旅-起始篇
  • (转)setTimeout 和 setInterval 的区别
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (轉貼) UML中文FAQ (OO) (UML)
  • .apk文件,IIS不支持下载解决