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)



  • 相关阅读:
    php读写json文件
    BasicPHPLite v1.0.1 轻量级PHP框架
    XAMPP如何修改默认的网站目录htdocs方法详解
    zend framework firephp 调试函数
    SMARTY模板中如何使用get,post,request,cookies,session,server变量
    获取服务器信息
    phpmail发送邮件
    moodle安装小结
    dotproject安装及 修正甘特图乱码
    不要再ifelse中嵌套ifesle
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163535.html
Copyright © 2011-2022 走看看