【转】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));

}

原文地址:https://www.cnblogs.com/rooney/p/2578894.html