C++ C拆分一个wchar\t数组

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

一些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 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);
      }          
    }