0

我想“验证”一个 wstring 并删除不需要的字符。

这就是我想做的:

wstring wsInput=L"Some Text $$!$§";

wstring wsNew=L"";

for (int i=0;i<wsInput.size();i++)
{
    wstring wsChar=wsInput.CharacterAt(i);
    wsChar = ToValidWString(wsChar); // ToValidWString will return L"" if the character is not among the valid characters
    wsNew.append(wsChar); 
}

return wsNew;

但是 wstring 没有这样的函数“.CharacterAt()”。我想这是有原因的,但无论如何我都需要它。

有人可以帮忙吗?

谢谢你。

4

1 回答 1

1

您可以使用运算符[]。这将返回一个wchar,而不是字符串,但在我看来这将使您的代码更简单。所以为了让事情更清楚:

for (int i=0;i<wsInput.size();i++)
{
    wchar_t wc =wsInput[i]; // sorry for the name it comes from wchar ;)
    ... do stuff...
}

编辑:要获得由字符串中第 i 个字符组成的 wstring,请使用substr

for (int i=0;i<wsInput.size();i++)
{
    wstring ws = wsInput.substr(i, 1);
    ... do stuff...
}
于 2013-03-29T11:09:57.277 回答