zoukankan      html  css  js  c++  java
  • 【转】C++ int,char,string,CString类型转换(整理总结)

    #include <string>//使用C++标准库的string类时

    using namespace std;//同上

    #include <sstream>

    #include <iostream>

    #include <stdlib.h>//要将string类和int类型直接转换最好有这些包含,

                                 //因为自己写一个转换函数比较方便,函数定义参考如下:

    string getstring(const int n)

    {

    std::stringstream newstr;

    newstr<<n;

    return newstr.str();

    }

    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()要好

    2char->string

    string(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,char*,char[100]之间的转换

    CString与int,char*,char[100]之间的转换

    CString互转int

    将字符转换为整数,可以使用atoi、_atoi64或atol

    而将数字转换为CString变量,可以使用CString的Format函数。

    如:

    CString s;

    int i=64;

    s.Format("%d",i);

    Format函数的功能很强,值得研究

    void CStrDlg::OnButton1()

    {

    CString ss="1212.12"

    int temp=atoi(ss);

    CString aa;

    aa.Format("%d",temp);

    AfxMessageBox("var is"+aa);

    }

    sart.Format("%s",buf);

    CString互转char*

    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。用操作符(LPCSTR)CString就可以了。

    CString转换char[100]

    char a[100];

    CString str("aaaaa");

    strncpy(a,(LPcSTR)str,sizeof(a));

    }

  • 相关阅读:
    vue seven day
    vue six day
    vue five day
    vue four day
    vue three day
    vue two day
    vue one day
    leetcode105-Golang根据前序遍历与中序遍历构建二叉树
    配置树莓派的frp反向代理与supervisor进程守护与开机自启脚本
    Golang实现二分查找算法
  • 原文地址:https://www.cnblogs.com/rooney/p/2578894.html
Copyright © 2011-2022 走看看