c/c++中的各种字符串转换

 一:CString 和 *char 的转换:

  1:CString -> *char

  1)CString转化为*char可以使用CString中的GetBuffer()函数,具体如下:

CString string1 = _T("string");
char *str = string1.GetBuffer();

  注意的是,在GetBuffer后要使用ReleaseBuffer以更新对象内部数据,否则会发生不可意料的意外。

  2)可以使用强制转换。

CString string1 = _T(“string”);
char *str = (LPTSTR)(LPCTSTR)string1;

  3)也可使用函数strcpy实现转换。

  4)使用CString的GetAt()函数:

CString string1 = _T("string");
char *str = string1.GetAt(0);

  即获取下标为0的字符。

  2:*char -> CString

  1)使用format函数:

char *str = "string";
CString string1;
string1.format("%s",str);

  2)同样也可以强制转换:

char *str = "string";
CString string1(str);

二:*char 与 int 的转换

  1:*char -> int

  1)使用atoi()函数:

char *val = "12345";
int num = atoi(val);

  

  2:int -> *char

  1)使用itoa()函数:

int num = 12345;
char buf[5];
itoa(buf, num, 10);

  itoa()函数中后面10代表十进制。

  2)使用sprintf()函数:

int num = 12345;
char buf[6];
sprintf(buf, "%d", num);

......

 

原文地址:https://www.cnblogs.com/fwensen/p/3679538.html