0

C++で次の形式の文字列があります

   string variable1="This is stackoverflow \"Here we go "1234" \u1234 ABC";

この文字列で、アルファベット (a から b、および A から B) と数字以外のすべての文字を削除します。私の出力がなるように

   variable1="This is stackoverflow Here we go 1234 u1234 ABC";

ポインターを使用してすべての文字をチェックしようとしましたが、非常に非効率的であることがわかりました。C++/C を使用して同じことを達成する効率的な方法はありますか?

4

2 に答える 2

2

実際のコード例: http://ideone.com/5jxPR5

bool predicate(char ch)
    {
     return !std::isalnum(ch);
    }

int main() {
    // your code goes here


    std::string str = "This is stackoverflow Here we go1234 1234 ABC";

    str.erase(std::remove_if(str.begin(), str.end(), predicate), str.end());
    cout<<str;
    return 0;
}
于 2013-10-28T17:55:07.117 に答える