用x的c ++替换字符串的一部分

时间:2010-12-06 04:57:50

标签: c++ string

明天我正在学习测试并在我的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的密码。我怎么能用简单的字符串函数做到这一点?

2 个答案:

答案 0 :(得分:2)

查看标记化。用空格分隔整个字符串,然后用X替换第三和第五组。

答案 1 :(得分: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