`
- 浏览:
372956 次
- 性别:
- 来自:
苏州
-
将ASCII转换为Wchar CString测试~
- 一 首先定义一个数据的结构体
-
structStudent
- {
-
BYTEbName[8];
-
BYTEbAge[4];
-
BYTEbAddress[20];
- };
- 二 定义一个转换测试函数
-
BOOLSetStuInfo(StudentstuSet)
- {
-
FILE*fp;
-
-
-
fp=fopen("test.txt","w");
-
-
-
-
-
-
-
-
fprintf(fp,"%s\n","------------------case1------------------");
-
fprintf(fp,"%s\n",stuSet.bName);
-
fprintf(fp,"%s\n",stuSet.bAge);
-
fprintf(fp,"%s\n",stuSet.bAddress);
-
fprintf(fp,"%s\n","----------------------------------------");
-
BOOLbResult=TRUE;
-
WCHARstrName[8];
-
WCHARstrAge[4];
-
WCHARstrAddress[20];
-
TCHARTest[20]=_T("I中国人");
-
CHARTempArray[20];
-
strcpy(TempArray,"中1过1");
-
DWORDdwNum;
-
memcpy(TempArray,stuSet.bName,sizeof(stuSet.bName));
- dwNum=MultiByteToWideChar(CP_ACP,0,TempArray,-1,NULL,0);
- MultiByteToWideChar(CP_ACP,0,TempArray,-1,strName,dwNum);
-
memcpy(TempArray,stuSet.bAge,sizeof(stuSet.bAge));
- dwNum=MultiByteToWideChar(CP_ACP,0,TempArray,-1,NULL,0);
- MultiByteToWideChar(CP_ACP,0,TempArray,-1,strAge,dwNum);
-
memcpy(TempArray,stuSet.bAddress,sizeof(stuSet.bAddress));
- dwNum=MultiByteToWideChar(CP_ACP,0,TempArray,-1,NULL,0);
- MultiByteToWideChar(CP_ACP,0,TempArray,-1,strAddress,dwNum);
-
fprintf(fp,"%s\n","------------------case2------------------");
-
fprintf(fp,"%s\n",strName);
-
fprintf(fp,"%s\n",strAge);
-
fprintf(fp,"%s\n",strAddress);
-
fprintf(fp,"%s\n",Test);
-
fprintf(fp,"%s\n","----------------------------------------");
- CStringstrSTUInfo;
-
-
strSTUInfo.Format(_T("Name='%10s'Age='%11s'Address='%11s'"),strName,strAge,strAddress);
-
-
fprintf(fp,"%s\n","------------------case3------------------");
-
fprintf(fp,"%s\n",strSTUInfo);
-
fprintf(fp,"%s\n","----------------------------------------");
-
strSTUInfo.Format(_T("Name='%10s'Age='%11s'Address='%11s'"),stuSet.bName,stuSet.bAge,stuSet.bAddress);
-
fprintf(fp,"%s\n","------------------case4------------------");
-
fprintf(fp,"%s\n",strSTUInfo);
-
fprintf(fp,"%s\n","----------------------------------------");
- CStringcsName;
- CStringcsAge;
- CStringcsAddress;
- csName+=stuSet.bName;
- csAge+=stuSet.bAge;
- csAddress+=stuSet.bAddress;
-
strSTUInfo.Format(_T("Name='%s'Age='%s'Address='%s'"),csName,csAge,csAddress);
-
-
fprintf(fp,"%s\n","------------------case5------------------");
-
fprintf(fp,"%s\n",csName);
-
fprintf(fp,"%s\n",csAge);
-
fprintf(fp,"%s\n",csAddress);
-
fprintf(fp,"%s\n",strSTUInfo);
-
fprintf(fp,"%s\n","----------------------------------------");
-
csName="";
-
csAge="";
-
csAddress="";
- csName+=strName;
- csAge+=strAge;
- csAddress+=strAddress;
-
strSTUInfo.Format(_T("Name='%s'Age='%s'Address='%s'"),csName,csAge,csAddress);
- fclose(fp);
-
returnTRUE;
- }
- 三 运行产看测试结果
-
voidCASIIandUnicodeTestDlg::OnTestStruct()
- {
-
-
StudentSetInfo={"1戴1勇","25","1江1苏1科1技1大1学1"};
-
-
-
- SetStuInfo(SetInfo);
-
inti;
- i=100;
- }
- 四 查看测试结果
- ------------------case1------------------
1戴1勇
25
1江1苏1科1技1大1学1
----------------------------------------
------------------case2------------------
1
2
1
I中国人
----------------------------------------
------------------case3------------------
Name=' 1' Age=' 2' Address=' 1'
----------------------------------------
------------------case4------------------
Name=' 1戴1勇' Age=' 25' Address='1江1苏1科1技1大1学1'
----------------------------------------
------------------case5------------------
1戴1勇
25
1江1苏1科1技1大1学1
Name='1戴1勇' Age='25' Address='1江1苏1科1技1大1学1'
----------------------------------------
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文将详细讲解如何在UNICODE环境下,使用C++的CString类进行宽字符(WCHAR)与const char及char之间的转换。这些转换在处理字符串资源,如文件路径、用户输入或系统API调用时至关重要。 首先,`CString`是...
- 使用`MultiByteToWideChar`函数将`CString`中的多字节字符转换为宽字符。 - 再次使用`WideCharToMultiByte`函数将宽字符转换为UTF-8编码的多字节字符。 - 最后将转换后的字符数组复制到`CString`对象中。 2. ...
// 将TCHAR字符串转换为CString CString TCharToCString(const TCHAR* pszTChar) { return CString(pszTChar); } // 将CString转换为TCHAR字符串 TCHAR* CStringToTChar(CString strCString) { LPTSTR pszTChar =...
5. `CA2A`和`CA2W`宏:这些宏根据当前项目设置的字符集,将`CString`转换为ANSI(`char*`)或Unicode(`WCHAR*`)。例如: ```cpp CString str; //... 填充str char* pszChar = CA2A(str); ``` 宏转换是安全的,但...
在Unicode环境下将`CString`对象转换为整型`int`是一个常见的需求,尤其是在Windows编程中。本篇将详细探讨如何在Visual Studio 2008环境下实现这一转换,并深入讲解其中涉及的关键知识点。 #### Unicode与编码环境...
3. `CStringToWString`: 将MFC的`CString`对象转换为`wstring`(通常包含`wchar_t`的字符串)。 4. `WStringToCString`: 反向转换,将`wstring`转换为`CString`。 5. `IntToString`: 将整数转换为字符串,这对于显示或...
可以使用以下方法将`CString`转换为`TCHAR*`: ```cpp CString strWindowText = _T("QQ2006"); TCHAR* pszWindowText = new TCHAR[strWindowText.GetLength() + 1]; strWindowText.CopyTo(pszWindowText, ...
可能的接口设计包括`UnicodeToStdString`和`StdStringToUnicode`等,它们分别将Unicode CString转换为std::string和反之。 `UnicodeToStdString`函数可能的实现是: ```cpp std::string UnicodeToStdString(const ...
- `CString`到数学类型的转换:通常需要先将`CString`转换为`LPCTSTR`(即`const char*`或`const wchar_t*`),再使用上述数学类型到字符串转换的逆过程,例如`dblValue = atof(strValue)`,将`CString``strValue`...
- 将整型转换为`CString`:使用`CString::Format()`或`_itoa()`等函数。 - 将`CString`转换为整型:使用`_ttoi()`函数,确保在Unicode环境中正确处理。 - **`CString`与`char*`/`wchar_t*`之间的转换**: - `...
例如,如果你有一个`TCHAR`类型的字符串,想要转换为`CHAR`类型,可以使用`WideCharToMultiByte`函数,该函数将宽字符转换为多字节字符集(如ASCII)。在提供的代码段中,`TcharToChar`函数展示了这种转换过程: ``...
`std::string`与`cstring`之间的转换通常是通过`c_str()`和`data()`成员函数实现的,这两个函数可以将`std::string`转换为C风格的字符数组。而`std::string`与`wstring`之间的转换则可以通过`std::wstring_convert`...
- **从`std::wstring`到`std::string`**:`WideCharToMultiByte`函数接收一个宽字符串作为输入,并将其转换为一个多字节字符串。在转换过程中,需要指定目标编码,通常使用`GetACP()`来获取系统的当前ANSI代码页。 ...
例如,`mbstowcs_s`函数用于将多字节字符串转换为宽字符字符串(`wchar_t*`)。在这个例子中,原始的`char *`字符串被转换成`wchar_t*`,然后附加了标识字符串类型的文本。 2. **转换到`wchar_t *`**: - `wchar_t...
1. `int atoi(const char *string)`:这个函数将一个ASCII格式的字符串转换为整数。例如,`atoi("123")` 将返回整数123。 2. `_int64 _atoi64(const char *string)`:用于将字符串转换为64位整数。 3. `long atol...
- **CString与数学类型转化**:可以使用`Format()`函数将数值格式化为字符串,使用`ATOL()`, `ATOI()`, `ATOF()`等函数将CString转换回数值类型。 - **CString与char\*转换**:使用`GetBuffer()`获取内部缓冲区,...
例如,要将`char *`转换为`wchar_t*`,我们可以使用`mbstowcs_s`函数,它将多字节字符串转换为宽字符字符串。接着,我们可以使用`_bstr_t`的构造函数或`CComBSTR`的赋值运算符将宽字符串转换为COM兼容的字符串类型。...
`MultiByteToWideChar`将多字节字符串转换为宽字符字符串,而`WideCharToMultiByte`则执行相反的操作。这两个函数都需要指定源编码格式,例如GBK、GB2312或UTF-8等。 此外,VC提供了一些内置的字符串类,如`CString...
在Microsoft Foundation Classes (MFC) 中,字符转换是常见的任务,因为MFC是基于C++构建的,而C++支持多种字符集,如ASCII、Unicode(UTF-16)和宽字符集(如Windows API中的WCHAR)。MFC库提供了一些类和函数来...
在包含`<tchar.h>` 头文件时,如果编译器配置为多字节字符集(MBCS),`_TCHAR` 将定义为`char`;如果是宽字节字符集(Unicode),则定义为`_wchar_t`。这样可以编写同时兼容ASCII和Unicode的代码。 4. **`__T()` ...