C++中字符类型转换实用教程:CString、int、string和char*

2 下载量 144 浏览量 更新于2024-09-01 收藏 48KB PDF 举报
在MFC/C++/C编程中,字符串类型转换是一项常见的任务,尤其是在处理用户输入、数据交换以及与不同库函数交互时。本文主要探讨了四种基本类型之间的转换:CString(MFC中的宽字符字符串)、int、std::string(C++标准库中的字符串)以及char*(字符指针)。以下是各个类型的转换方法和示例: 1. int转CString - 使用`CString.Format`函数将整数值转换为字符串,例如:`CString str = CString.Format("%d", int_value);` 2. string转CString - `string`可以直接通过`.c_str()`获取C风格字符串,然后传递给`CString.Format`,如:`CString str = CString.Format("%s", string.c_str());` 3. char*转CString - 通过`CString.Format`接收一个指向字符串的指针:`CString str = CString.Format("%s", char_ptr);` - 或者先将char*赋值给一个临时变量,再进行转换:`CString strtest; char* charpoint = "givestringavalue"; strtest = charpoint;` 4. CString转int - 可以使用`atoi`, `_atoi64`, 或 `atol`函数,如:`int temp = atoi(CString("1212.12"));` 或 `int int_chage = atoi((lpcstr)cstring);` - 或者使用`sscanf`函数,如:`UINT uint; sscanf(cstring, "%d", &uint);` 5. string转int - 类似于`char*`转`int`,使用`atoi`, `_atoi64`, `atol`, 或 `atoq`等函数。 6. char*转string - 使用`std::string`的构造函数,但推荐在初始化时使用,非初始化时使用`assign`方法,如:`std::string str = char_ptr;` 7. CString转string - 使用`GetStringBuffer`获取字符串的缓冲区,确保调用`ReleaseBuffer`释放内存,避免内存泄漏:`std::string str = strings(CString().GetBuffer());` 8. int转string - 类似于`char*`转`string`,但通常不直接使用`strings`函数,而是通过`to_string`或手动构造字符串。 9. CString转char* - `CString`有一个`GetBuffer`方法获取字符串的缓冲区,但需要注意释放内存,示例:`char* charpoint = strtest.GetBuffer(strtest.GetLength());` 以上是字符类型之间转换的基本方法和注意事项,实际编程中,根据具体需求和兼容性选择合适的方法,并注意内存管理,确保程序的健壮性和效率。