混乱的字符串转换(转)

http://hi.baidu.com/jwz_hz/blog/item/9b79bc596cb144d89c82049c.html

1.char *strtok(char *s, char *delim);
功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。

2.<string.h> or <wchar.h>or<mbstring.h>
int _stricmp(
   const char *string1,
   const char *string2
);
int _wcsicmp(
   const wchar_t *string1,
   const wchar_t *string2
);
int _mbsicmp(
   const unsigned char *string1,
   const unsigned char *string2
);
int _stricmp_l(
   const char *string1,
   const char *string2,
   _locale_t locale
);
int _wcsicmp_l(
   const wchar_t *string1,
   const wchar_t *string2,
   _locale_t locale
);
int _mbsicmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   _locale_t locale
);
这几个函数对字符串做比较的时候会先把字符串转换成小写,然后做比较。如:
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";
   strcmp:   String 1 is greater than string 2
   _stricmp:  String 1 is equal to string 2
3数据类型转换
TCHAR-->bstr       BSTR bsFileName=::T2BSTR(szFileName);
bstr-->ATL::CString    CString strFileName=bsFileName;
Atl::CString-->const char *     int nFileNameLen=strFileName.GetLength()*4+1;    char *buffer=new char[nFileNameLen];    strcpy(buffer,CT2A(strFileName));           
bstr-->tchar BSTR  bstr;     TCHAR  *pt  =  OLE2T(bstr); 或者 #include <atlconv.h> BSTR  bstr;   USES_CONVERSION;  TCHAR  *pt  =  OLE2T(bstr);   或者 BSTR bstrUpdate = _com_util::ConvertStringToBSTR(XXX); SysFreeString(bstrUpdate);
CString->TCHAR*的转化可以用函数GetBuff()
函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参数为CString字符串的长度 szMsg = str.GetBuffer(str.GetLength()); str.ReleaseBuffer(); delete []szMsg; szMsg = NULL;
TCHAR*->CString的转化
TCHAR szTchar[18] = L"TCHAR";      CString  str;      str.Format(_T("%s"),szTchar);
Unicode和ANSI之间转换
namespace _com::util
{
//char*-->bstr
BSTR ConvertStringToBSTR(const char * pSrc);//反过来用ConvertBSTRToString
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值