`

将ASCII转换为Wchar CString测试~

阅读更多
  1. 一 首先定义一个数据的结构体
  2. structStudent
  3. {
  4. BYTEbName[8];
  5. BYTEbAge[4];
  6. BYTEbAddress[20];
  7. };
  8. 二 定义一个转换测试函数
    1. BOOLSetStuInfo(StudentstuSet)
    2. {
    3. FILE*fp;
    4. //charstr[SIZE],ch;
    5. //inti=0;
    6. fp=fopen("test.txt","w");
    7. //printf("Pleaseinputastring:\n");
    8. //while((ch=getchar())!='!'&&i<SIZE)
    9. //str[i++]=toupper(ch);
    10. //str[i]='\0';/*手动加一个结束标志*/
    11. //printf("%s\n",str);
    12. //fprintf(fp,"%s\n",str);
    13. //fwrite(str,i,1,fp);/*两种输出方式*/
    14. fprintf(fp,"%s\n","------------------case1------------------");
    15. fprintf(fp,"%s\n",stuSet.bName);
    16. fprintf(fp,"%s\n",stuSet.bAge);
    17. fprintf(fp,"%s\n",stuSet.bAddress);
    18. fprintf(fp,"%s\n","----------------------------------------");
    19. BOOLbResult=TRUE;
    20. WCHARstrName[8];
    21. WCHARstrAge[4];
    22. WCHARstrAddress[20];
    23. TCHARTest[20]=_T("I中国人");
    24. CHARTempArray[20];
    25. strcpy(TempArray,"中1过1");
    26. DWORDdwNum;
    27. memcpy(TempArray,stuSet.bName,sizeof(stuSet.bName));
    28. dwNum=MultiByteToWideChar(CP_ACP,0,TempArray,-1,NULL,0);
    29. MultiByteToWideChar(CP_ACP,0,TempArray,-1,strName,dwNum);
    30. memcpy(TempArray,stuSet.bAge,sizeof(stuSet.bAge));
    31. dwNum=MultiByteToWideChar(CP_ACP,0,TempArray,-1,NULL,0);
    32. MultiByteToWideChar(CP_ACP,0,TempArray,-1,strAge,dwNum);
    33. memcpy(TempArray,stuSet.bAddress,sizeof(stuSet.bAddress));
    34. dwNum=MultiByteToWideChar(CP_ACP,0,TempArray,-1,NULL,0);
    35. MultiByteToWideChar(CP_ACP,0,TempArray,-1,strAddress,dwNum);
    36. fprintf(fp,"%s\n","------------------case2------------------");
    37. fprintf(fp,"%s\n",strName);
    38. fprintf(fp,"%s\n",strAge);
    39. fprintf(fp,"%s\n",strAddress);
    40. fprintf(fp,"%s\n",Test);
    41. fprintf(fp,"%s\n","----------------------------------------");
    42. CStringstrSTUInfo;
    43. //MessageBox(NULL,strSTUInfo,_T("Title"),MB_OK);
    44. strSTUInfo.Format(_T("Name='%10s'Age='%11s'Address='%11s'"),strName,strAge,strAddress);
    45. //MessageBox(NULL,strSTUInfo,_T("Title"),MB_OK);
    46. fprintf(fp,"%s\n","------------------case3------------------");
    47. fprintf(fp,"%s\n",strSTUInfo);
    48. fprintf(fp,"%s\n","----------------------------------------");
    49. strSTUInfo.Format(_T("Name='%10s'Age='%11s'Address='%11s'"),stuSet.bName,stuSet.bAge,stuSet.bAddress);
    50. fprintf(fp,"%s\n","------------------case4------------------");
    51. fprintf(fp,"%s\n",strSTUInfo);
    52. fprintf(fp,"%s\n","----------------------------------------");
    53. CStringcsName;
    54. CStringcsAge;
    55. CStringcsAddress;
    56. csName+=stuSet.bName;
    57. csAge+=stuSet.bAge;
    58. csAddress+=stuSet.bAddress;
    59. strSTUInfo.Format(_T("Name='%s'Age='%s'Address='%s'"),csName,csAge,csAddress);
    60. //MessageBox(NULL,strSTUInfo,_T("Title"),MB_OK);
    61. fprintf(fp,"%s\n","------------------case5------------------");
    62. fprintf(fp,"%s\n",csName);
    63. fprintf(fp,"%s\n",csAge);
    64. fprintf(fp,"%s\n",csAddress);
    65. fprintf(fp,"%s\n",strSTUInfo);
    66. fprintf(fp,"%s\n","----------------------------------------");
    67. csName="";
    68. csAge="";
    69. csAddress="";
    70. csName+=strName;
    71. csAge+=strAge;
    72. csAddress+=strAddress;
    73. strSTUInfo.Format(_T("Name='%s'Age='%s'Address='%s'"),csName,csAge,csAddress);
    74. fclose(fp);
    75. returnTRUE;
    76. }
    77. 三 运行产看测试结果
      1. voidCASIIandUnicodeTestDlg::OnTestStruct()
      2. {
      3. //TODO:Addyourcontrolnotificationhandlercodehere
      4. StudentSetInfo={"1戴1勇","25","1江1苏1科1技1大1学1"};
      5. //strcpy(SetInfo.bName,"Jacky");
      6. //strcpy(SetInfo.bAge,"25");
      7. //strcpy(SetInfo.bAddress,"JiangSuUniversity");
      8. SetStuInfo(SetInfo);
      9. inti;
      10. i=100;
      11. }
      12. 四 查看测试结果
      13. ------------------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'
        ----------------------------------------

分享到:
评论

相关推荐

    CString-const-char-char-to-WCHAR.rar_CString To Char_char wchar_

    本文将详细讲解如何在UNICODE环境下,使用C++的CString类进行宽字符(WCHAR)与const char及char之间的转换。这些转换在处理字符串资源,如文件路径、用户输入或系统API调用时至关重要。 首先,`CString`是...

    CString转UTF8,UTF8转CString

    - 使用`MultiByteToWideChar`函数将`CString`中的多字节字符转换为宽字符。 - 再次使用`WideCharToMultiByte`函数将宽字符转换为UTF-8编码的多字节字符。 - 最后将转换后的字符数组复制到`CString`对象中。 2. ...

    Char_Cstring_TCHAR.rar_C++ CString CHAR_Char_Cstring_TCHAR_TCHAR

    // 将TCHAR字符串转换为CString CString TCharToCString(const TCHAR* pszTChar) { return CString(pszTChar); } // 将CString转换为TCHAR字符串 TCHAR* CStringToTChar(CString strCString) { LPTSTR pszTChar =...

    CString转换char.rar 源码

    5. `CA2A`和`CA2W`宏:这些宏根据当前项目设置的字符集,将`CString`转换为ANSI(`char*`)或Unicode(`WCHAR*`)。例如: ```cpp CString str; //... 填充str char* pszChar = CA2A(str); ``` 宏转换是安全的,但...

    Unicode 编码下 CString To int

    在Unicode环境下将`CString`对象转换为整型`int`是一个常见的需求,尤其是在Windows编程中。本篇将详细探讨如何在Visual Studio 2008环境下实现这一转换,并深入讲解其中涉及的关键知识点。 #### Unicode与编码环境...

    xTool (字符间常用转换函数) 持续更新中 适用于Unicode下

    3. `CStringToWString`: 将MFC的`CString`对象转换为`wstring`(通常包含`wchar_t`的字符串)。 4. `WStringToCString`: 反向转换,将`wstring`转换为`CString`。 5. `IntToString`: 将整数转换为字符串,这对于显示或...

    转 String,CString,TCHAR,char之间区别和联系

    可以使用以下方法将`CString`转换为`TCHAR*`: ```cpp CString strWindowText = _T("QQ2006"); TCHAR* pszWindowText = new TCHAR[strWindowText.GetLength() + 1]; strWindowText.CopyTo(pszWindowText, ...

    Unicode CString和 std::string 的完美转换,不会有64K限制

    可能的接口设计包括`UnicodeToStdString`和`StdStringToUnicode`等,它们分别将Unicode CString转换为std::string和反之。 `UnicodeToStdString`函数可能的实现是: ```cpp std::string UnicodeToStdString(const ...

    常用数据类型转换.docx

    - `CString`到数学类型的转换:通常需要先将`CString`转换为`LPCTSTR`(即`const char*`或`const wchar_t*`),再使用上述数学类型到字符串转换的逆过程,例如`dblValue = atof(strValue)`,将`CString``strValue`...

    CString 操作指南.txt

    - 将整型转换为`CString`:使用`CString::Format()`或`_itoa()`等函数。 - 将`CString`转换为整型:使用`_ttoi()`函数,确保在Unicode环境中正确处理。 - **`CString`与`char*`/`wchar_t*`之间的转换**: - `...

    (UNICODE 与非UNICODE导致的问题)CString,TCHAR和CHAR类型的互转.docx

    例如,如果你有一个`TCHAR`类型的字符串,想要转换为`CHAR`类型,可以使用`WideCharToMultiByte`函数,该函数将宽字符转换为多字节字符集(如ASCII)。在提供的代码段中,`TcharToChar`函数展示了这种转换过程: ``...

    cstring wstring string

    `std::string`与`cstring`之间的转换通常是通过`c_str()`和`data()`成员函数实现的,这两个函数可以将`std::string`转换为C风格的字符数组。而`std::string`与`wstring`之间的转换则可以通过`std::wstring_convert`...

    C++ 中有关于Cstring的全部应用

    - **从`std::wstring`到`std::string`**:`WideCharToMultiByte`函数接收一个宽字符串作为输入,并将其转换为一个多字节字符串。在转换过程中,需要指定目标编码,通常使用`GetACP()`来获取系统的当前ANSI代码页。 ...

    VisualC++如何:在各种字符串类型之间进行转换[文].pdf

    例如,`mbstowcs_s`函数用于将多字节字符串转换为宽字符字符串(`wchar_t*`)。在这个例子中,原始的`char *`字符串被转换成`wchar_t*`,然后附加了标识字符串类型的文本。 2. **转换到`wchar_t *`**: - `wchar_t...

    CString,字符串,整数等相互转换方法(推荐)

    1. `int atoi(const char *string)`:这个函数将一个ASCII格式的字符串转换为整数。例如,`atoi("123")` 将返回整数123。 2. `_int64 _atoi64(const char *string)`:用于将字符串转换为64位整数。 3. `long atol...

    VC++类型转换详解

    - **CString与数学类型转化**:可以使用`Format()`函数将数值格式化为字符串,使用`ATOL()`, `ATOI()`, `ATOF()`等函数将CString转换回数值类型。 - **CString与char\*转换**:使用`GetBuffer()`获取内部缓冲区,...

    VISUALC如何:在各种字符串类型之间进行转换[参考].pdf

    例如,要将`char *`转换为`wchar_t*`,我们可以使用`mbstowcs_s`函数,它将多字节字符串转换为宽字符字符串。接着,我们可以使用`_bstr_t`的构造函数或`CComBSTR`的赋值运算符将宽字符串转换为COM兼容的字符串类型。...

    VC中编码转换大全

    `MultiByteToWideChar`将多字节字符串转换为宽字符字符串,而`WideCharToMultiByte`则执行相反的操作。这两个函数都需要指定源编码格式,例如GBK、GB2312或UTF-8等。 此外,VC提供了一些内置的字符串类,如`CString...

    MFC下的字符转换

    在Microsoft Foundation Classes (MFC) 中,字符转换是常见的任务,因为MFC是基于C++构建的,而C++支持多种字符集,如ASCII、Unicode(UTF-16)和宽字符集(如Windows API中的WCHAR)。MFC库提供了一些类和函数来...

    关于char,_wchar_t,_TCHAR,__T(),L,宏__T、TEXT,_TEXT、L.

    在包含`&lt;tchar.h&gt;` 头文件时,如果编译器配置为多字节字符集(MBCS),`_TCHAR` 将定义为`char`;如果是宽字节字符集(Unicode),则定义为`_wchar_t`。这样可以编写同时兼容ASCII和Unicode的代码。 4. **`__T()` ...

Global site tag (gtag.js) - Google Analytics