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);
......