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());
  • 相关阅读:
    ASP.NET Core的Kestrel服务器(转载)
    ASP.NET Core MVC中的IActionFilter.OnActionExecuting方法,可以获取Controller的Action方法参数值
    SQL 中常用存储过程xp_cmdshell运行cmd命令 (转载)
    SQL Server数据库中外键强制约束的好处是什么,什么时候设置外键非强制约束?(转载)
    EF Core中如何取消跟踪DbContext中所有被跟踪的实体
    c# .NET开发邮件发送功能的全面教程(含邮件组件源码)
    jquery操作select(取值,设置选中) 基础
    Visiual Studio2012 CLR20r3问题
    关于同时查询父子名称的SQL查询语句的写法 id name parentId parentName .
    Linq to SQL Like Operator
  • 原文地址:https://www.cnblogs.com/ganmk/p/1520438.html
Copyright © 2011-2022 走看看