zoukankan      html  css  js  c++  java
  • char*,string和CString之间的转换

    一、 将CString类转换成char*(LPSTR)类型

    方法一,使用强制转换。例如:
    CString theString( “This is a test” );
    LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;
    方法二,使用strcpy。例如:
    CString theString( “This is a test” );
    LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
    _tcscpy(lpsz, theString);
    方法三,使用CString::GetBuffer。例如:
    CString s(_T(“This is a test “));
    LPTSTR p = s.GetBuffer();
    // 在这里添加使用p的代码
    if(p != NULL) *p = _T(‘’);
    s.ReleaseBuffer();
    // 使用完后及时释放,以便能使用其它的CString成员函数

    CString str = “ABCDEF”;
    char *pBuf = str,GetBuffer( 0 );
    str.ReleaseBuffer();

    二、 string转char*

    string 是c++标准库里面其中一个,封装了对字符串的操作
    把string转换为char* 有3种方法:
    1。data(),返回没有”“的字符串数组
    如:
    string str=”abc”;
    char *p=str.data();
    2.c_str 返回有”“的字符串数组
    如:string str=”gdfd”;
    char *p=str.c_str();
    3 copy
    比如
    string str=”hello”;
    char p[40];
    str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置
    *(p+5)=’’; //要手动加上结束符
    cout < < p;

    三、 字符串string转换为其它数据类型

    temp=”123456”;
    1)短整型(int)
    i = atoi(temp);
    2)长整型(long)
    l = atol(temp);
    3)浮点(double)
    d = atof(temp);
    string s; d= atof(s.c_str());
    4)BSTR变量
    BSTR bstrValue = ::SysAllocString(L”程序员”);
    …///完成对bstrValue的使用
    SysFreeString(bstrValue);
    5)CComBSTR变量
    CComBSTR类型变量可以直接赋值
    CComBSTR bstrVar1(“test”);
    CComBSTR bstrVar2(temp);
    6)_bstr_t变量
    _bstr_t类型的变量可以直接赋值
    _bstr_t bstrVar1(“test”);
    _bstr_t bstrVar2(temp);

    四、 Char*转换为string

    如果要把一个char 转换成string, 可以使用 string s(char *);

    五、string 转CString
    CString.format(“%s”, string.c_str());

    六、char 转CString
    CString.format(“%s”, char*);

    七、 CString -> string

    string s(CString.GetBuffer());
    GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

    八、CString互转int

    将字符转换为整数,可以使用atoi、_atoi64或atol。
    而将数字转换为CString变量,可以使用CString的Format函数。如
    CString s;
    int i = 64;
    s.Format(“%d”, i)

  • 相关阅读:
    [LeetCode]2. Add Two Numbers链表相加
    Integration between Dynamics 365 and Dynamics 365 Finance and Operation
    向视图列添加自定义图标和提示信息 -- PowerApps / Dynamics365
    Update the Power Apps portals solution
    Migrate portal configuration
    Use variable to setup related components visible
    Loyalty management on Retail of Dynamic 365
    Modern Fluent UI controls in Power Apps
    Change screen size and orientation of a canvas app in Power App
    Communication Plan for Power Platform
  • 原文地址:https://www.cnblogs.com/lllini/p/11955320.html
Copyright © 2011-2022 走看看