我有一个 wstring
变量,我想按空格字符拆分它并放入一个 vector
wstring wStr = L"Hello World !";
vector<wstring> vw;
wstring st = L"";
for (int i = 0; i < wStr.length(); i++) {
if (&wStr[i] == L" ") {
vw.push_back(st);
}
else{
st += wStr[i];
}
}
我的结果在 vector
中应该是这样的:
Hello
World
!
但它不会进入if语句
最佳答案
那是因为您正在比较两个指针。而这两个指针永远不会相同。而是比较字符:
if (wStr[i] == L' ') ...
相关说明,这不是在空间上拆分字符串的最简单方法。试试这个:
std::wistringstream wis(wStr);
std::vector<std::wstring> wv(std::istream_iterator<std::wstring, wchar_t>(wis), {});
关于c++ - 如何拆分 wstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41741331/