我正在尝试char* removeChars(char* str, char* remove)
实施C
但是,如果我通过"Battle of the Vowels"
and "aeiou"
,我会被"Bttlftwl"
退回。任何帮助指出我的代码中的错误将不胜感激!为即将到来的面试做准备!请注意,这是来自 Programming Interviews Exposed 的一个问题,提供的解决方案是用 C# 编写的,我也在尝试实现 C 版本以进行练习。
char* removeCharacters(char* string, char* toRemove)
{
int flags[128];
while(*toRemove)
{
flags[*toRemove] = 1;
toRemove++;
}
char* head = string;
char* src = string;
char* dest = string;
while(*string)
{
if (!flags[*string])
{
*dest = *src;
dest++;
}
src++;
string++;
}
*dest = NULL;
return head;
}