void charFilter(char* src) // 参数改为 string & src更好
{
int k = 0;
for (int i = 0; src[i] != '\0'; i++)
{
if ( '\\' != src[i] &&
':' != src[i] &&
'*' != src[i] )
{
src[k++] = src[i];
}
}
src[k] = '\0';
}
// 迭代器版本
void charFilter(string& str)
{
for(string::iterator it = str.begin(); it != str.end(); ++it)
{
if ( '\\' != src[i] ||
':' != src[i] ||
'*' != src[i] )
{
str. erase(it);
}
}
}
尝试 range for 循环实现失败,不能在range-for的循环体中改变遍历的容器的大小,即不允许遍历的同时添加或删除元素!