zoukankan      html  css  js  c++  java
  • unicode下各种类型转换CString、string

    把最近用到的各种unicode下类型转换总结了一下:

    1、string转CString

    string a=”abc”;

                  CString str=CString(a.c_str());

                  或str.format("%s", a.c_str())

    2、int转CString

        Int a;

    CString Cstr;

                  Cstr.Format(_T("%d"),a);

    3、char 转 CString 

    CString.format("%s", char*);

    例:

                  char  szPath[];

                  CString Cstr;

                  Cstr.Format(_T("%s"),szPath);

    4、CString转string
                  CString C_str=_T("abc");

    string str((LPCSTR)CStringA(C_str));

                  或string str=CStringA(C_str);

                  或通过char*中转

           CString m_str(_T("qwerg"));

           char *chr=new char[m_str.GetLength()+1];

           WideCharToMultiByte(CP_ACP,0,m_str.GetBuffer(),-1,chr,m_str.GetLength()+1,NULL,NULL);

           string str=chr;

    或者CString C_str = _T("ooqoqoq");

     //   setlocale(LC_ALL, "chs");

          char *p = new char[C_str.GetLength()+1];

          wcstombs(p,C_str,C_str.GetLength()+1);

          string str = p;

           用下面代码检测:

                  MessageBox((CString)str.c_str());

    5、CString转const char*

                  CString a=_T(“  ”);

                  CStringA b(a);

                  const char *c=new char(50);

              c=b.GetString();

    或者:

    CString FilePath=_T(“   ”);

           int len=WideCharToMultiByte( CP_ACP,0,FilePath.AllocSysString(),FilePath.GetLength(),NULL,0,NULL,NULL);

                  char * pAscii =new char[len];

    len=WideCharToMultiByte(CP_ACP,0,FilePath.AllocSysString(),FilePath.GetLength(),pAscii,len+1,NULL,NULL);

                  pAscii[len]=0;    

                  const char* path=(const char*)pAscii;

    6、CString转char*

           CString strPath = _T("啊啊啊");

           int nLength = strPath.GetLength();

           int nBytes = WideCharToMultiByte(CP_ACP,0,strPath,nLength,NULL,0,NULL,NULL);

           char* VoicePath = new char[ nBytes + 1];

           memset(VoicePath,0,nLength + 1);

           WideCharToMultiByte(CP_OEMCP, 0, strPath, nLength, VoicePath, nBytes, NULL, NULL);

           VoicePath[nBytes] = 0;

     

    7、CString转int

                  CString str=_T("123");

                  int b=_ttoi(str);

                  或者转成string,再转int

    8、char 转 string 
    string s(char *);

    9、char[]转LPWSTR

    直接强制转换

    10、string转char*

    把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 <</span> <</span>p;

    11、string转int

            string num;

            int a=atoi(num.c_str());

     12 、int转string

    #include

          stringstream ss;

    int n = 123;
        string str;
        ss<<n;
        ss>>str;

  • 相关阅读:
    OCM_Session7_8_分区,并使用udev来配置裸设备
    OCM_Session7_7_VBOX配置共享存储
    OCM_Session7_6_配置oracle用户ssh对等性
    OCM_Session7_5_修改/etc/security/limits.conf和 /etc/pam.d/login和/etc/profile
    OCM_Session7_4_修改内核配置文件/etc/sysctl.conf
    OCM_Session7_3_修改 oracle 用户的初始化参数文件,建路径
    OCM_Session7_2_创建组,用户,设置用户密码
    OCM_Session7_1_配置/etc/hosts
    OCM_Session7_0_准备工作,确定hostname和ip地址
    OCM_Session7_0_CRS-0223
  • 原文地址:https://www.cnblogs.com/bigcat814/p/4736255.html
Copyright © 2011-2022 走看看