zoukankan      html  css  js  c++  java
  • C++ 字符串转换

    一.在字符串前加一个L作用:  

      如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。  
      strlen("asd") = 3;   

      strlen(L"asd") = 6;  


    二.LPCTSTR和LPCWSTR

    LPCTSTR不是一个类型,而是两种类型:LPCSTR和LPCWSTR其中之一。会根据你当前程序是否使用UNICODE字符集来变成那二者之一。如果使用UNICODE字符集,则LPCTSTR = LPCWSTR,否则LPCTSTR = LPCSTR。

    标准库的std::string转换成LPCSTR很简单:直接调用c_str()即可。例:
    std::string a="abc";
    LPCSTR str = a.c_str();

    标准库还有一个wstring,代表宽字符的string,std::wstring转换成LPCWSTR也一样很简单:
    std::wstring a = L"abc";
    LPCWSTR str = a.c_str();

    如果要是std::string转换成LPCWSTR或者std::wstring转换成LPCSTR那就比较麻烦了,需要调用MultiByteToWideChar或WideCharToMultiByte进行字符集之间的转换。不过大多数时候不需要这种交叉转换,一个程序一般只会使用一种字符集。


    三.int转化为string

    1.C++11中有一个to_string方法std::to_string是C++标准(2011年)的最新版本中引入的功能。旧的编译器可能不支持它。
    2.只能用笨方法,如下:
    int转string
    int n = 0;
    std::stringstream s;
    std::string str;
    s<<n;
    s>>str;

    也可以这样:
    int num = 100;
    char str[25];
    itoa(num, str, 10);

    string转int
    std::string str = "123";
    int n = atoi(str.c_str());

    四.int转LPCWSTR

    include<stdlib.h>
    using std::wstring;

    LPCWSTR to INT:

    LPCWSTR wstr = L"abc";
    wstring tempstr( wstr);
    int value = _wtoi( tempstr.c_str());

    INT to LPCWSTR:


    int value = 123;
    wchar_t cha[10];
    _itow_s( value, cha, 10, 10);
    函数第一个参数是要转换的整数, 
    第二个参数是定义好的wchar_t型数组, 
    第三个参数是要占用数组中的几个位置(注:比数字位置多1), 
    第四个参数是数字类型(二进制就是2,十进制就是10)



  • 相关阅读:
    单元測试和白盒測试相关总结
    数据结构:图的实现--邻接矩阵
    Android提示版本号更新操作流程
    《集体智慧编程》代码勘误:第六章
    LINUX设备驱动程序笔记(三)字符设备驱动程序
    数学定理证明机械化的中国学派(II)
    《Java并发编程实战》第三章 对象的共享 读书笔记
    Linux系列-安装经常使用软件
    Kubuntu 初始配置
    虚拟互换(virtual swap)
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163535.html
Copyright © 2011-2022 走看看