C++ C拆分一个wchar\t数组
一些api代码C++ C拆分一个wchar\t数组,c++,C++,一些api代码 wchar_t OrderingCode[100]; 我需要在换行时将字符串一分为二。我只在ppl循环数组时找到样本。在C中是否有任何api函数用作String.Split# 使用,然后可以按如下方式轻松拆分: m_Result.SetWindowTextW(OrderingCode1); m_Result.SetWindowTextW(OrderingCode2); std::vectorSplitString(const std::wstring&str,wchar\u
wchar_t OrderingCode[100];
我需要在换行时将字符串一分为二。我只在ppl循环数组时找到样本。在C中是否有任何api函数用作String.Split#
使用,然后可以按如下方式轻松拆分:
m_Result.SetWindowTextW(OrderingCode1);
m_Result.SetWindowTextW(OrderingCode2);
std::vectorSplitString(const std::wstring&str,wchar\u t ch)
{
std::vectorret;
大小\u t startPos=0;
size_t endPos=str.find(ch,startPos);
while(endPos!=std::wstring::npos)
{
返回推送(str.substr(起始位置、结束位置));
startPos=endPos+1;
endPos=str.find(ch,startPos);
}
后推(str.substr(startPos,str.length());
返回ret;
}
也许你可以看看strtok函数。@rcs当请求API函数时,你应该对宽字符字符串使用wcstok
。我认为他在使用wchar\t解决性能问题。你的答案不是答案,而是建议。重新思考并准确回答他的问题。不需要解决方法。
m_Result.SetWindowTextW(OrderingCode1);
m_Result.SetWindowTextW(OrderingCode2);
std::vector< std::wstring > SplitString( const std::wstring& str, wchar_t ch )
{
std::vector< std::wstring > ret;
size_t startPos = 0;
size_t endPos = str.find( ch, startPos );
while( endPos != std::wstring::npos )
{
ret.push_back( str.substr( startPos, endPos ) );
startPos = endPos + 1;
endPos = str.find( ch, startPos );
}
ret.push_back( str.substr( startPos, str.length() );
return ret;
}
wchar_t * test, *next_token1;
test = wcstok_s(OrderingCode, L"\n\r", &next_token1);
if (test != NULL)
{
m_Result.SetWindowTextW(test);
test = wcstok_s(nullptr, L"\n\r", &next_token1);
if (test != NULL)
{
m_Result2.SetWindowTextW(test);
}
}