string,CString,char*之间转换


一、string操作

1.string -> CString

string str = "123";

CString cstr;

cstr.Format("%s", str.c_str());  //string.c_str() 返回的是 const char * 指针


2.string -> int

string.c_str() -->const char*

#include<stdlib.h>

int atoi(const char* nptr);

long atol(const char* nptr);

long long atoll(const char* nptr); // long long 类型是64位的

long long atoq(const char* nptr); 

//atio():  参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。


3.string -> char*

string str("abc");


1)const char* pch = str.c_str();

2)char* pch = new char[max];

   memset(pch, 0, max);

   strcpy(pch, str.c_str());



二、CString操作

1. CString -> string

CString cstr("abc");

string str;

str.assign(cstr.GetBuffer());

cstr.ReleaseBuffer();


2. CString -> int

CString cstr("123");

int num = atoi(cstr);


3.CString -> char*

CString cstr("abc");

char* pch;

1) pch = cstr.GetBuffer();

       do something...

    cstr.ReleaseBuffer();


2) pch = new char[max];

    memset(pch, 0, max);

    strcpy(pch, cstr.GetBuffer());

    cstr.ReleaseBuffer();



三、char* 操作

1.char* -> CString

CString cstr;

char* pch = "123";

cstr.Format("%s", pch);


2. char* -> int

char* pch = "123";

int num = atoi(pch);


3. char* -> string

string str;

char* pch = "123";

str.assign(pch);


四、 int操作

1. int -> CString

int num = 123;
CString cstr;
cstr.Format("%d", num);

2. int -> char*

int num = 123;
char* pch = new char[max];
itoa(num, pch, 10);


另附一篇别人的文章:
http://blog.csdn.net/yxnk/article/details/2030719


你可能感兴趣的:(string,CString,char*之间转换)