如何在各种字符串类型之间进行转换 VSWord文档格式.docx
- 文档编号:15394201
- 上传时间:2022-10-30
- 格式:DOCX
- 页数:21
- 大小:19.63KB
如何在各种字符串类型之间进行转换 VSWord文档格式.docx
《如何在各种字符串类型之间进行转换 VSWord文档格式.docx》由会员分享,可在线阅读,更多相关《如何在各种字符串类型之间进行转换 VSWord文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
在下面的示例中,char*字符串有时称为多字节字符字符串,因为该字符串数据是从Unicode字符串转换得到的。
可对char*字符串执行单字节和多字节字符(MBCS)函数运算。
代码
复制//convert_from_char.cpp
//compilewith:
/clr/linkcomsuppw.lib
#include<
iostream>
stdlib.h>
string>
#include"
atlbase.h"
atlstr.h"
comutil.h"
usingnamespacestd;
usingnamespaceSystem;
intmain()
{
//CreateanddisplayaCstylestring,andthenuseit
//tocreatedifferentkindsofstrings.
char*orig="
Hello,World!
"
;
cout<
<
orig<
"
(char*)"
<
endl;
//newsizedescribesthelengthofthe
//wchar_tstringcalledwcstringintermsofthenumber
//ofwidecharacters,notthenumberofbytes.
size_tnewsize=strlen(orig)+1;
//Thefollowingcreatesabufferlargeenoughtocontain
//theexactnumberofcharactersintheoriginalstring
//inthenewformat.Ifyouwanttoaddmorecharacters
//totheendofthestring,increasethevalueofnewsize
//toincreasethesizeofthebuffer.
wchar_t*wcstring=newwchar_t[newsize];
//Convertchar*stringtoawchar_t*string.
size_tconvertedChars=0;
mbstowcs_s(&
convertedChars,wcstring,newsize,orig,_TRUNCATE);
//Displaytheresultandindicatethetypeofstringthatitis.
wcout<
wcstring<
_T("
(wchar_t*)"
)<
//ConverttheCstylestringtoa_bstr_tstring.
_bstr_tbstrt(orig);
//Appendthetypeofstringtothenewstring
//andthendisplaytheresult.
bstrt+="
(_bstr_t)"
bstrt<
//ConverttheCstylestringtoaCComBSTRstring.
CComBSTRccombstr(orig);
if(ccombstr.Append(_T("
(CComBSTR)"
))==S_OK)
{
CW2Aprintstr(ccombstr);
printstr<
}
//ConverttheCstylestringtoaCstringAanddisplayit.
CStringAcstringa(orig);
cstringa+="
(CStringA)"
cstringa<
//ConverttheCstylestringtoaCStringWanddisplayit.
CStringWcstring(orig);
cstring+="
(CStringW)"
//TodisplayaCStringWcorrectly,usewcoutandcastcstring
//to(LPCTSTR).
(LPCTSTR)cstring<
//ConverttheCstylestringtoabasic_stringanddisplayit.
stringbasicstring(orig);
basicstring+="
(basic_string)"
basicstring<
//ConverttheCstylestringtoaSystem:
:
Stringanddisplayit.
String^systemstring=gcnewString(orig);
systemstring+="
(System:
String)"
Console:
WriteLine("
{0}"
systemstring);
deletesystemstring;
}
输出
复制Hello,World!
(char*)
(wchar_t*)
(_bstr_t)
(CComBSTR)
(CStringA)
(CStringW)
(basic_string)
String)
此示例演示如何从wchar_t*转换为上面列出的其他字符串类型。
包括wchar_t*在内的一些字符串类型可实现宽字符格式。
若要在多字节和宽字符格式之间转换字符串,则可以使用单个函数调用(如mbstowcs_s),也可以使用针对类的构造函数调用(如CStringA)。
复制//convert_from_wchar_t.cpp
//Createastringofwidecharacters,displayit,andthen
//usethisstringtocreateothertypesofstrings.
wchar_t*orig=_T("
);
//Convertthewchar_tstringtoachar*string.Record
//.thelengthoftheoriginalstringandadd1toitto
//.accountfortheterminatingnullcharacter.
size_torigsize=wcslen(orig)+1;
//Useamultibytestringtoappendthetypeofstring
//tothenewstringbeforedisplayingtheresult.
charstrConcat[]="
size_tstrConcatsize=(strlen(strConcat)+1)*2;
//Allocatetwobytesinthemultibyteoutputstringforeverywide
//characterintheinputstring(includingawidecharacter
//null).Becauseamultibytecharactercanbeoneortwobytes,
//youshouldallottwobytesforeachcharacter.Havingextra
//spaceforthenewstringisnotanerror,buthaving
//insufficientspaceisapotentialsecurityproblem.
constsize_tnewsize=origsize*2;
//Thenewstringwillcontainaconvertedcopyoftheoriginal
//stringplusthetypeofstringappendedtoit.
char*nstring=newchar[newsize+strConcatsize];
//Putacopyoftheconvertedstringintonstring
wcstombs_s(&
convertedChars,nstri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何在各种字符串类型之间进行转换 VS 如何 各种 字符串 类型 之间 进行 转换