VC 数据类型转换:CString, char, int, long, string, byte 之间

4星 · 超过85%的资源 需积分: 50 109 下载量 168 浏览量 更新于2024-09-17 收藏 5KB TXT 举报
本文主要介绍了在VC++环境中不同数据类型之间的转换,特别是涉及到CString、char、int、long、string以及byte等类型之间的相互转换方法。 在VC++编程中,经常需要将不同数据类型进行转换,以便于数据处理和传递。以下是一些常见的转换示例: 1. `int`转`CString`: ```cpp int n = 1; CString str; str.Format("%d", n); ``` 这里通过`Format`函数将整型变量`n`转换成以字符串形式表示的`CString`。 2. `CString`转`int`: ```cpp CString str = "1"; int n = atoi(str.GetBuffer(0)); ``` 使用`GetBuffer(0)`获取`CString`的字符缓冲区,然后用`atoi`函数将其转换为整型。 3. `char*`转`CString`: ```cpp char sz[128]; CString str; str.Format("%s", sz); ``` 将C风格字符串`sz`通过`Format`函数转化为`CString`。 4. `CString`转`char*`: ```cpp CString str; int nLength = str.GetLength(); char* sz = new char[nLength]; sz = str.GetBuffer(0); // 或者使用C++标准库的函数 strcpy_s(sz, nLength, str); ``` 使用`GetBuffer(0)`获取`CString`的缓冲区,并通过`strcpy_s`复制到`char*`。 此外,还展示了如何构建XML字符串的例子,涉及到字符串拼接操作: ```cpp CString strTemp = "<?xml"; CString strSpace = ""; CString strVersion = "version='1.0'"; CString strEncoding = "encoding='gb2312'?>"; CString strXml = strTemp + strSpace + strVersion + strEncoding; ``` 以及使用`strtok`函数进行字符串分割的示例: ```cpp int nLength = strXml.GetLength(); char* sz = new char[nLength]; sz = strXml.GetBuffer(0); char* p; char* sign = 0; sign = new char[2]; memset(sign, 0, 2); strcpy(sign, ">"); int i = 0; p = strtok(sz, sign); while (p) { // 处理分割后的子串 } ``` 这段代码中,`strtok`函数用于根据分隔符`>`将`strXml`字符串拆分成多个子串。 这些转换方法在VC++开发中非常常见,熟练掌握这些转换技巧可以提高编程效率并避免潜在的类型匹配错误。