字符串处理.ppt

上传人:s****8 文档编号:67572717 上传时间:2022-12-25 格式:PPT 页数:15 大小:336KB
返回 下载 相关 举报
字符串处理.ppt_第1页
第1页 / 共15页
字符串处理.ppt_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《字符串处理.ppt》由会员分享,可在线阅读,更多相关《字符串处理.ppt(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、VC中的字符串字符集及编码ANSI:ASCII码,每个字符占用1个字节,可以表示128个字符。能表示所有英文字符,但不适用于非英文字符集。例如”ABC”占用4个连续字节。MBCS:多字节码,对ANSI标准字符,仍用一个字节表示,但对非ANSI标准字符,用两个字节表示,且两个字节最高位都为1。该编码方式能表示任何一种语言的常用文字,但各地编码方式不统一。例如”中文ABC”占用8个连续字节。字符集及编码UNICODE:统一码,每个字符用2个字节表示,可以为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。例如”中文ABC”占用12个连续字节。在VC

2、IDE开发环境中,使用如下条件编译使用不同的字符集:无编译选项,使用ANSI字符集_MBCS,使用MBCS字符集_UNICODE,使用UNICODE字符集VC中的字符编码ASCII字符:char,CHARchar c=a;/占一个字节Unicode字符:wchar_t,WCHARWCHAR c=La;/占两个字节通用字符:TCHAR,使用宏_UNICODE在宽窄字符集之间灵活切换TCHAR c=_T(a);VC中的字符串ANSI字符串:char*,CHAR*,PSTR,PCSTR,LPSTR,LPCSTRchar*str=“abc”;/内存数据为61626300char*str=“中文abc”

3、;/使用MBCS码Unicode字符串:wchar_t*,WCHAR*,PWSTR,PCWSTR,LPWSTR,LPCWSTRWCHAR*str=L”abc”/内存数据为/6100620063000000WCHAR*str=L”中文abc”;/使用UNICODE码VC中的字符串通用字符串:TCHAR*,PTSTR,PCTSTR,LPTSTR,LPCTSTRTCHAR*str=_T(“中文abc”);/根据平台自动选择/字符集BSTR字符串:BSTR是一个有长度前缀和null结束符的OLECHAR数组。BSTR的前4字节是一个表示字符串长度的前缀。BSTR长度域的值是字符串的字节数,并且不包括0

4、结束符。这种字符串主要用于COM interface接口定义以及与VB等语言混合编程。BSTR str=_bstr_t(“abc”);/内存数据为/060000006100620063000000字符串处理函数字符串操作字符串操作ANSI字符串字符串MBCS字符串字符串Unicode字符串字符串通用字符串通用字符串获得字符个数strlenstrlenwcslen_tcslen字符串比较strcmp_mbscmpwcscmp_tcscmp字符串拷贝strcpy_mbscpywcscpy_tcscpy字符串叠加strcat_mbscatwcscat_tcscat查找子串strstr_mbsstrw

5、csstr_tcsstr转成大写字符串_strupr_mbsupr _wcsupr_tcsupr转成小写字符串_strlwr_mbslwr_wcslwr_tcslwr字符串格式化sprintfsprintfswprintf_stprintf字符串处理函数BSTR字符串不能使用通常的字符串处理函数,必须使用BSTR的专用函数。函数函数描述描述SysAllocStringCreates and initializes a string.SysAllocStringByteLenCreates a zero-terminated string of a specified length.SysAll

6、ocStringLenCreates a string of a specified length.SysFreeStringFrees a previously created string.SysReAllocStringChanges the size and value of a string.SysReAllocStringLenChanges the size of an existing string.SysStringByteLenReturns the length of a string in bytes.SysStringLenReturns the length of

7、a string.字符串处理类std:string:ATL中封装char*的字符串类。std:wstring:ATL中封装WCHAR*的字符串类。CString:MFC中封装TCHAR*的字符串类。CComBSTR:ATL中封装BSTR的字符串类。_bstr_t:BSTR的封装类,相当于一个带有引用计数的智能指针。字符串处理类字符串操作字符串操作std:string/std:wstringCStringCComBSTR_bstr_t获得字符个数length()GetLength()Length()length()字符串比较、=、=、=、=、操作符字符串拷贝=操作符=操作符=操作符=操作符字符串

8、叠加+操作符+操作符+操作符+操作符查找子串find(),rfind()Find(),ReverseFind()获得字串substr()Mid()返回字符串数据c_str()GetBuffer()m_strGetBSTR()字符串格式化Format()字符串之间转换char*与WCHAR*之间转换WCHAR*AnsiToUnicode(const char*szStr)int nLen=MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,szStr,-1,NULL,0);if(nLen=0)return NULL;wchar_t*pResult=new wcha

9、r_tnLen;MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,szStr,-1,pResult,nLen);return pResult;char*UnicodeToAnsi(const WCHAR*szStr)int nLen=WideCharToMultiByte(CP_ACP,0,szStr,-1,NULL,0,NULL,NULL);if(nLen=0)return NULL;char*pResult=new charnLen;WideCharToMultiByte(CP_ACP,0,szStr,-1,pResult,nLen,NULL,NULL);

10、return pResult;字符串之间转换char*与WCHAR*之间转换(cont.)WCHAR*pszW=L”abc”;CW2A pszA(pszW);char*str=pszA.m_psz;char*pszA=”abc”;CA2W pszW(pszA);WCHAR*str=pszW.m_psz;类似的用法还有,CW2T、CA2T、CT2W、CT2A等。字符串之间转换char*与BSTR之间转换BSTR str1=_com_util:ConvertStringToBSTR(abc);char*str2=_com_util:ConvertBSTRToString(str1);字符串之间转换

11、char*与std:string之间转换#include std:string str1(abc);std:string str2=abc;char*str=(char*)str1.c_str();WCHAR*与std:wstring之间转换类似处理。字符串之间转换TCHAR*与CString之间转换CString str1(_T(abc);CString str2=_T(abc);TCHAR*str3=str1.GetBuffer(10);int sizeOfBuffer=s.GetAllocLength();_tcscpy_s(pBuffer,sizeOfBuffer,_T(Hello);str1.ReleaseBuffer();LPCTSTR str4=str1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com