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

    CString转string :

    CString strMfc = "test";
    std::string strStr;
    strStr = strMfc.GetBuffer(0);
    //第一种方式:
    CString str = _T("CSDN");
    USES_CONVERSION;
    std::string s(W2A(str));
    //第二种方式:
    CString str = _T("CSDN");
    std::string s = (CT2A)str; 

    string转CString

    CString strMfc;
    string strStr = "test";
    strMfc = strStr.c_str();

    CString转const char*

    //第一种方式:(CString转char*转const char*)
    CString str=_T("CSDN");
    const char* cstr;
    char temp[100];
    ::wsprintfA(temp, "%ls",(LPCTSTR)str);
    cstr = temp;     
    //第二种方式:(CString 转string转const char*)
    CString str = _T("CSDN");
    USES_CONVERSION;
    std::string s(W2A(str));
    const char* cstr = s.c_str(); 

    onst char*转CString

    const char* cstr = "CSDN";
    CString str(cstr);
    
    

    1 CString,int,string,char*之间的转换
    string 转 CString
    CString.format("%s", string.c_str());
    char 转 CString
    CString.format("%s", char*);
    char 转 string
    string s(char *);
    string 转 char *
    char *p = string.c_str();
    CString 转 string
    string s(CString.GetBuffer());
    1,string -> CString
    CString.format("%s", string.c_str());
    用c_str()确实比data()要好.
    2,char -> string
    string s(char *);
    你的只能初始化,在不是初始化的地方最好还是用assign().
    3,CString -> string
    string s(CString.GetBuffer());
    GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

    《C++标准函数库》中说的
    有三个函数可以将字符串的内容转换为字符数组和C—string
    1.data(),返回没有”“的字符串数组
    2,c_str(),返回有”“的字符串数组
    3,copy()

    CString互转int
    将字符转换为整数,可以使用atoi、_atoi64或atol。
    而将数字转换为CString变量,可以使用CString的Format函数。如
    CString s;
    int i = 64;
    s.Format("%d", i)
    Format函数的功能很强,值得你研究一下。
    void CStrDlg::OnButton1()
    {
    // TODO: Add your control notification handler code here
    CString
    ss="1212.12";
    int temp=atoi(ss);
    CString aa;
    aa.Format("%d",temp);
    AfxMessageBox("var is " + aa);
    }
    sart.Format("%s",buf);
    CString互转char*
    ///char * TO cstring
    CString strtest;
    char * charpoint;
    charpoint="give string a value";
    strtest=charpoint;

    ///cstring TO char *
    charpoint=strtest.GetBuffer(strtest.GetLength());
    标准C里没有string,char *==char []==string
    可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

    CString转换 char[100]
    char a[100];
    CString str("aaaaaa");
    strncpy(a,(LPCTSTR)str,sizeof(a));
    2 CString类型的转换成int
    CString类型的转换成int
    将字符转换为整数,可以使用atoi、_atoi64或atol。
    //CString aaa = "16" ;
    //int int_chage = atoi((lpcstr)aaa) ;

    而将数字转换为CString变量,可以使用CString的Format函数。如
    CString s;
    int i = 64;
    s.Format("%d", i)
    Format函数的功能很强,值得你研究一下。
    如果是使用char数组,也可以使用sprintf函数。
    //CString ss="1212.12";
    //int temp=atoi(ss);
    //CString aa;
    //aa.Format("%d",temp);

    数字->字符串除了用CString::Format,还有FormatV、sprintf和不需要借助于Afx的itoa

    3 char* 在装int
    #include <stdlib.h>

    int atoi(const char *nptr);
    long atol(const char *nptr);
    long long atoll(const char *nptr);
    long long atoq(const char *nptr);

    4 CString,int,string,char*之间的转换
    string aa("aaa");
    char *c=aa.c_str();

    cannot convert from 'const char *' to 'char *'
    const char *c=aa.c_str();

    5 CString,int,string,char*之间的转换
    string.c_str()只能转换成const char *,
    要转成char *这样写:
    string mngName;
    char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());

  • 相关阅读:
    面试题-JAVA算法题
    分布式
    linux中文件描述符fd和struct file结构体的释放
    Linux字符设备驱动
    Linux内存地址管理概述
    mnist卷积网络实现
    【TensorFlow官方文档】MNIST机器学习入门
    FCN笔记
    datetime.timedelta
    tensorflow中的函数获取Tensor维度的两种方法:
  • 原文地址:https://www.cnblogs.com/code1992/p/11528908.html
Copyright © 2011-2022 走看看