2010-12-06 10 views
1

私は明日のテストのために勉強しています。私のC++教科書にはブックの問題があります。文字列の一部をxのC++に置き換えます

私たちはほとんど文字列を使っていませんが、ここに私の問題があります。

//    name   ss#  username password 

string data = "Santa Claus 454-90-3424 sclaus passwordy" 
string data2 = "Morgan Freeman 554-40-1124 mfree passwordx" 

と私は必要がXXX-XX-XXXXと文字数のためのすべてのxのとパスワードを使用して、社会保障番号を交換することを可能ならばこれらの文字列の両方で動作することができます機能を書きたいですパスワード。単純な文字列関数でこれをどうすればできますか?

+0

私はあなたのコメントが役に立つと思っていますが、私はあなたが想定しているよりもはるかに経験が少ないです:...( –

+0

:/どのようにパスワードxまたはパスワード2を得ることができますか?パスワードは –

答えて

0

replace_ifの機能をalgorithmに使用してください。 (ドキュメントとサンプルコードhereを参照してください)。あなたの問題は次のように解決できます:

#include <algorithm> // for replace_if 
    #include <cctype> // for isdigit 

    std::replace_if(data.begin(), data.end(), isdigit, 'x'); 
    // => Santa Claus xxx-xx-xxxx sclaus passwordy 

    std::replace_if(data2.begin(), data2.end(), isdigit, 'x'); 
    // => Morgan Freeman xxx-xx-xxxx mfree passwordx 
+0

助けてくれてありがとう!パスワードをxでも置き換えることができますか?例えば、passwordyが45Z4Yならxxxxx(各文字x)に置き換えます。 –

2

トークンを調べます。文字列全体をスペースで区切り、3番目と5番目のセットをXで置き換えます。

関連する問題