用C语言编写一个高效率的函数来删除字符串里的给定字符。这个函数的调用模型如下所示:
void RemoveChars(char str[], char remove[]);
注意,remove[]中所有的字符都必须从str[]中删除干净。例如,如果str[]是 "Life is better and better",remove[]是 "aeiou",这个函数将把str转化为 "Lf s bttr nd bttr"。
请对设计思路做出解释,并对解决方案的执行效率进行评估。
#include "stdafx.h"
#include <iostream.h>
void RemoveChars(char str[], char remove[])
{
int src, dst, removeArray[256]; // 临时缓冲区
// 将临时缓冲区数组中所有的元素置0
for(src = 0; src < 256; src++)
{
removeArray[src] = 0;
}
// 将要移除的字符设为真
src = 0;
while(remove[src]) // remove中第src+1个字符不为空
{
removeArray[remove[src]] = 1;