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

    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(),返回没有”\0“的字符串数组
    2,c_str(),返回有”\0“的字符串数组
    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());
  • 相关阅读:
    dayfunctools.weps 定义函数装饰器
    python3之concurrent.futures一个多线程多进程的直接对接模块,python3.2有线程池了
    python的类的super()
    django的admin
    python的单例模式
    git指南
    django创建验证码
    Django model对象接口
    Go语言基础
    迭代器&迭代对象&生成器
  • 原文地址:https://www.cnblogs.com/ganmk/p/1520438.html
Copyright © 2011-2022 走看看