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 に答える