字符串操作(一)
来源:互联网 发布:党规党纪面前知敬畏 编辑:程序博客网 时间:2024/06/05 13:21
代码片段,来源于Arcemu开源项目。
(1)切分
using namespace std;vector<string> StrSplit(const string & src, const string & sep){vector<string> r;string s;for(string::const_iterator i = src.begin(); i != src.end(); i++){if(sep.find(*i) != string::npos){if(s.length()) r.push_back(s);s = "";}else{s += *i;}}if(s.length()) r.push_back(s);return r;}
(2)编码转换
// win32 only// cebernic added it// for multilanguage supports// --------------------------------------------------------------------------------------------------SERVER_DECL const char* _StringToUTF8(const char* pASCIIBuf){#ifdef WIN32DWORD UniCodeLen = MultiByteToWideChar(CP_ACP, 0, pASCIIBuf, -1, 0, 0);std::vector <wchar_t> vWCH(UniCodeLen);MultiByteToWideChar(CP_ACP, 0, pASCIIBuf, -1, &vWCH[0], UniCodeLen);DWORD dwUtf8Len = WideCharToMultiByte(CP_UTF8, 0, &vWCH[0], UniCodeLen , NULL, NULL, NULL, NULL);ASSERT(dwUtf8Len + 1 < 2048);memset(_StringConversionStorage, 0, (sizeof(char)*dwUtf8Len) + 1);WideCharToMultiByte(CP_UTF8, 0, &vWCH[0], UniCodeLen , _StringConversionStorage, dwUtf8Len, NULL, NULL);return &_StringConversionStorage[0];#elsereturn &pASCIIBuf[0];#endif}SERVER_DECL const char* _StringToANSI(const char* pUtf8Buf){#ifdef WIN32DWORD UniCodeLen = MultiByteToWideChar(CP_UTF8, 0, pUtf8Buf, -1, NULL, 0);std::vector <wchar_t> vWCH(UniCodeLen);MultiByteToWideChar(CP_UTF8, 0, pUtf8Buf, -1, &vWCH[0] , UniCodeLen);DWORD dwASCIILen = WideCharToMultiByte(CP_ACP, 0, &vWCH[0], UniCodeLen , NULL , NULL , NULL, NULL);ASSERT(dwASCIILen + 1 < 2048);memset(_StringConversionStorage, 0, (sizeof(char)*dwASCIILen) + 1);WideCharToMultiByte(CP_ACP, 0, &vWCH[0], UniCodeLen , _StringConversionStorage, dwASCIILen, NULL, NULL);return &_StringConversionStorage[0];#elsereturn &pUtf8Buf[0];#endif}
- 字符串操作(一)
- 字符串操作(一)
- XPCOM字符串操作(一)
- 字符串操作总结(一)
- PHP 字符串操作(一)
- Python 字符串操作(一)
- 字符串操作总结(一)
- javascript字符串操作(一)
- 文件操作及字符串操作(一):
- C语言字符串操作(一)
- 【Android工具】字符串操作工具包(一)
- PHP日记(一)字符串操作
- C/C++的字符串操作(一)
- Swift字符串的基本操作(一)
- Python语言入门(一)字符串操作
- String字符串操作<一>
- 第14周项目15-字符串操作(一)
- 第十五周项目五:字符串操作(一)
- 腾讯面试:Linux下如何扫描目录
- ftp shell扫描目录上传脚本
- Java程序员的成长过程
- 关于消息提示框中换行的问题
- PHP模拟POST提交的2种方法 curl,fsockopen,HttpClient
- 字符串操作(一)
- Linux下PHP开发环境搭建-php,mysql,apache
- android学习笔记转--------------junit.framework.AssertionFailedError: No tests found in错误解决办法
- 马拦过河卒(NOIP2002)
- vc 下编写的 Windows窗口小程序 计算机
- Unix/Linux C++应用开发-make工具的使用
- 字符串操作(二)
- JS字符串处理函数
- java解惑1-表达式谜题