明天我正在学习测试并在我的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 :(得分: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