c++ 字符串分割,包含空格和一些特殊汉字,适用于vs c++,c++ builder,
一些汉字查找会出现乱码,导致分割异常,把std::string改成std::wstring
std::vector<std::wstring> split(std::wstring str, std::wstring pattern)
{
std::string::size_type pos;
std::vector<std::wstring> result;
str += pattern;
int size = str.size();
for (int i = 0; i < size; i++)
{
pos = str.find(pattern, i);
if (pos < size)
{
std::wstring s = str.substr(i, pos - i);
result.push_back(s);
i = pos + pattern.size() - 1;
}
}
return result;
}
TStringList *pList = new TStringList();
String strSource;// = "1~硚口";
strSource =AStr;
WideString wstr = strSource.c_str();
WideString p = "~";
vector<wstring> v;
wstring str2 =wstr.c_bstr();
v = split(str2, p.c_bstr());
for (vector<std::wstring>::iterator it = v.begin(); it != v.end(); it++)
{
std::wstring str= *it;
pList->Add(str.c_str());
}