
题目
解决代码及点评
/*
有两个字符串A和B,将同时在A和B中的字符,从A中剔除
比如A = "i am student", B = "aeu"
那么结果是A = "i m stdnt";
这个思想类似基数偶数分开的那个面试题,两头遍历A串,如果字符在B中,则交换到末尾去
*/
#include <iostream>
using namespace std;
int chuxian(char a,char *p)
{
for (int i=0;i<strlen(p);i++)
{
if (a==*(p+i))
{
return 0;
}
}
return 1;
}
int main()
{
char a[20]="helloworld";
char b[20]="lo";
char *phead=&a[0];
char *ptail=&a[9];
//两个指针顺次查找,碰到前面是偶数后面是奇数,交换
//直到二指针相遇
while (ptail>=phead)
{
if(chuxian(*phead,b)==1) // 如果头上字母没出现,则继续找下一个
{
phead++;
continue;
}