stringwstringcstring char tcharintdword转换方法.docx
- 文档编号:5105854
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:13
- 大小:18.52KB
stringwstringcstring char tcharintdword转换方法.docx
《stringwstringcstring char tcharintdword转换方法.docx》由会员分享,可在线阅读,更多相关《stringwstringcstring char tcharintdword转换方法.docx(13页珍藏版)》请在冰豆网上搜索。
stringwstringcstringchartcharintdword转换方法
本文来自网络,链接地址:
string、wstring、cstring、char、tchar、int、dword转换方法
1》string转wstring
wstrings2ws(conststring&s)
{
_bstr_tt=s.c_str();
wchar_t*pwchar=(wchar_t*)t;
wstringresult=pwchar;
returnresult;
}
2》wstring转string
stringws2s(constwstring&ws)
{
_bstr_tt=ws.c_str();
char*pchar=(char*)t;
stringresult=pchar;
returnresult;
}
3》string转cstring
a)CString.format("%s",string.c_str());
b)CStringStringToCString(stringstr)
{
CStringresult;
for(inti=0;i<(int)str.length();i++)
{
result+=str[i];
}
returnresult;
}
4》cstring转string
a)voidConvertCString2string(CString&strSrc,std:
:
string&strDes)
{
#ifndefUNICODE
strDes=strSrc;
#elseUSES_CONVERSION;
strDes=W2A(strSrc.LockBuffer());
strSrc.UnlockBuffer();
#endif
}
b)
strings(CString.GetBuffer());
ReleaseBuffer();
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.
c)
stringCStringToString(CStringcstr)
{
stringresult(cstr.GetLength(),'e');
for(inti=0;i { result[i]=(char)cstr[i]; } returnresult; } 5》string转char* a)char*p=string.c_str(); 举例: stringaa("aaa");char*c=aa.c_str();stringmngName;chart[200];memset(t,0,200);strcpy(t,mngName.c_str()); b)一个一个字符的赋值 char*p=newchar[sring的长度+1]; p[string的长度]='/0'; 但是要注意最后赋值'/0'! ! ! char*StringToChar(string&str) { intlen=str.length(); char*p=newchar[len+1]; for(inti=0;i { p[i]=str[i]; } p[len]='/0'; } 6》char*转string strings(char*);你的只能初始化,在不是初始化的地方最好还是用assign(); stringCharToString(char*arr,intcount) { stringresult(arr,4); returnresult; } string是ansi编码字符char TCHAR是unicode编码字符wchar_t 7》string转TCHAR* /* wBuf申明为指针即可。 */ wchar_t*chr2wch(constchar*buffer) { size_tlen=strlen(buffer); size_twlen=MultiByteToWideChar(CP_ACP,0,(constchar*)buffer,int(len),NULL,0); wchar_t*wBuf=newwchar_t[wlen+1]; MultiByteToWideChar(CP_ACP,0,(constchar*)buffer,int(len),wBuf,int(wlen)); returnwBuf; } 8》TCHAR*转string char*wch2chr(LPCTSTRlpString) { //Calculateunicodestringlength. UINTlen=wcslen(lpString)*2; char*buf=(char*)malloc(len); UINTi=wcstombs(buf,lpString,len); returnbuf; } 9》string和char*转int string转int .............................. char*转int #include intatoi(constchar*nptr); longatol(constchar*nptr); longlongatoll(constchar*nptr); longlongatoq(constchar*nptr); 10》int转char*和string 在stdlib.h中有个函数itoa() itoa的用法: itoa(i,num,10); i需要转换成字符的数字 num转换后保存字符的变量 11》wstring转Csting std: : wstring转CString CStringstr(filename.c_str()); 12》Cstring转wstring CString转std: : wstring std: : wstringstr=filename.GetString(); 13》Cstring转char* CStringcstr(asdd); constchar*ch=(LPCTSTR)cstr; 举例: CString str="i am good"; char* lp=str.GetBuffer(str.GetLength()); str.ReleaseBuffer(); 14》char*转Cstring 举例: CString str; char pStr[100]; str.Format("%s",pStr); 15》TCHar转char *********************************************************************** *函数: THCAR2Char *描述: 将TCHAR*转换为char* *********************************************************************** char*CPublic: : THCAR2char(TCHAR*tchStr) { intiLen=2*wcslen(tchStr);//CString,TCHAR汉字算一个字符,因此不用普通计算长度 char*chRtn=newchar[iLen+1] wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值 returnchRtn; } 16》char转tchar 定义了UNICODE宏之后,TCHAR就是宽字符wchar_t,否则TCHAR跟char是一样的^_ 具体问题具体分析,浮云啊,一切皆是浮云..... 以下摘录自网络: .............................................................. 《C++标准函数库》中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”/0“的字符串数组 2,c_str(),返回有”/0“的字符串数组 3,copy() ................................................................. int转CString: CString.Format("%d",int); ............................... string转CString CString.format("%s",string.c_str()); 用c_str()确实比data()要好. ....................................... char*转CString CString.format("%s",char*); CStringstrtest; char*charpoint; charpoint="givestringavalue"; strtest=charpoint;//直接付值 ................................................................... CString转int CString ss="1212.12"; inttemp=atoi(ss);//atoi_atoi64或atol 将字符转换为整数,可以使用atoi、_atoi64或atol。 intint_chage=atoi((lpcstr)ss); 或: CStringstr="23"; UINTuint; sscanf(str,"%d",uint); .............................. string转int .............................. char*转int #include intatoi(constchar*nptr); longatol(constchar*nptr); longlongatoll(constchar*nptr); longlongatoq(constchar*nptr); ................................................................... CString转string strings(CString.GetBuffer()); GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间. .......................................... int转string .......................................... char*转string strings(char*); 你的只能初始化,在不是初始化的地方最好还是用assign(). ................................................................... CString转char* CStringstrtest="wwwwttttttt"; charpoint=strtest.GetBuffer(strtest.GetLength()); CString转换char[100] chara[100]; CStringstr("aaaaaa"); strncpy(a,(LPCTSTR)str,sizeof(a)); CString str="aaa"; char* ch; ch=(char*)(LPCTSTR)str; .......................................... int转char* 在stdlib.h中有个函数itoa() itoa的用法: itoa(i,num,10); i需要转换成字符的数字 num转换后保存字符的变量 10转换数字的基数(进制)10就是说按照10进制转换数字。 还可以是2,8,16等等你喜欢的进制类型 原形: char*itoa(intvalue,char*string,intradix); 实例: #include"stdlib.h" #include"stdio.h" main() { inti=1234; chars[5]; itoa(i,s,10); printf("%s",s); getchar(); } .......................................... string转char* char*p=string.c_str(); stringaa("aaa"); char*c=aa.c_str(); stringmngName; chart[200]; memset(t,0,200); strcpy(t,mngName.c_str()); ................................................................... 标准C里没有string,char*==char[]==string 可以用CString.Format("%s",char*)这个方法来将char*转成CString。 要把CString转成char*,用操 作符(LPCSTR)CString就可以了。 cannotconvertfrom'constchar*'to'char*' constchar*c=aa.c_str(); string.c_str()只能转换成constchar* #include //使用CString必须使用MFC,并且不可包含 #define_AFXDLL #include usingnamespacestd; //———————————————————————————- //将单字节char*转换为宽字节wchar* inlinewchar_t*AnsiToUnicode(constchar*szStr) { intnLen=MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,szStr,-1,NULL,0); if(nLen==0) { returnNULL; } wchar_t*pResult=newwchar_t[nLen]; MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,szStr,-1,pResult,nLen); returnpResult; } //———————————————————————————- //将宽字节wchar_t*转换单字节char* inlinechar*UnicodeToAnsi(constwchar_t*szStr) { intnLen=WideCharToMultiByte(CP_ACP,0,szStr,-1,NULL,0,NULL,NULL); if(nLen==0) { returnNULL; } char*pResult=newchar[nLen]; WideCharToMultiByte(CP_ACP,0,szStr,-1,pResult,nLen,NULL,NULL); returnpResult; } //———————————————————————————- //将单字符string转换为宽字符wstring inlinevoidAscii2WideString(conststd: : string&szStr,std: : wstring&wszStr) { intnLength=MultiByteToWideChar(CP_ACP,0,szStr.c_str(),-1,NULL,NULL); wszStr.resize(nLength); LPWSTRlpwszStr=newwchar_t[nLength]; MultiByteToWideChar(CP_ACP,0,szStr.c_str(),-1,lpwszStr,nLength); wszStr=lpwszStr; delete[]lpwszStr; } //———————————————————————————- int_tmain(intargc,_TCHAR*argv[]) { char* pChar=“我喜欢char”; wchar_t*pWideChar=L”我讨厌wchar_t”; wchar_t tagWideCharList[100]; char ch=‘A’; char tagChar[100]={NULL}; CString cStr; std: : stringstr; //注: 设置语言环境以便输出WideChar setlocale(LC_ALL,”chs”); //注: char*转换wchar_t* //注: wchar_t未重载<<,所以不可使用cout<<输出 pWideChar=AnsiToUnicode(pChar); //注: printf(”%ls”)和wprintf(L”%s”)一致 printf(“%ls/n”,pWideChar); //注: wchar_t*转换wchar_t[] wcscpy(tagWideCharList,pWideChar); wprintf(L”%s/n”,tagWideCharList); //注: wchar_t[]转换wchar_t* pWideChar=tagWideCharList; wprintf(L”%s/n”,pWideChar); //注: char转换string str.insert(str.begin(),ch); cout< //注: wchar_t*转换string pWideChar=newwchar_t[str.length()]; swprintf(pWideChar,L”%s”,str.c_str()); wprintf(L”%s/n”,pWideChar); //注: string转换char* pChar=const_cast cout< //注: char*转换string str=std: : string(pChar); //注: cout的<<重载了string,若printf的话必须printf(”%s”,str.c_str()); // 而不可print(“%s”,str);因为str是个string类 cout< //注: string转换char[] str=“无聊啊无聊”; strcpy(tagChar,str.c_str()); printf(“%s/n”,tagChar); //注: string转换CString; cStr=str.c_str(); //注: CString转换string str=string(cStr.GetBuffer(cStr.GetLength())); //注: char*转换CString cStr=pChar; //注: CString转换char* pChar=cStr.GetBuffer(cStr.GetLength()); //注: CString转换char[] strncpy(tagChar,(LPCTSTR)CString,sizeof(tagChar)); //注: CString转换wchar_t* pWideChar=cStr.AllocSysString(); printf(“%ls/n”,pWideChar); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- stringwstringcstring char tcharintdword转换方法 tcharintdword 转换 方法
![提示](https://static.bdocx.com/images/bang_tan.gif)