posts - 71,  comments - 41,  trackbacks - 0
将给定字符从字符串中移除
如,text = "Could you write it down?", candidates = "ouit" -> text = "Cld y wre  dwn"
void RemoveChars(char *text, const char *candidates)
{
    
int src, dst;
    
bool *arrToBeRemoved = new bool[256]();
    
    
//explicit initialize, though new()
    for (src = 0; src < sizeof arrToBeRemoved / sizeof (bool); src++)
        arrToBeRemoved[src] 
= false;

    
for (src = 0; candidates[src] != '\0'; src++)
        arrToBeRemoved[candidates[src]] 
= true;


    src 
= dst = 0;
    
do 
    
{
        
if (!arrToBeRemoved[text[src]])
        
{
            text[dst
++= text[src];
        }


    }
 while(text[src++]);

}
posted on 2006-11-17 17:52 Charles 阅读(364) 评论(1)  编辑 收藏 引用 所属分类: 面试小算法

FeedBack:
# re: 移除字符
2008-08-21 13:46 | D_BOY
挑个小错:

for (src = 0; src < sizeof(arrToBeRemoved) / sizeof (bool); src++)

此处不应用sizeof(arrToBeRemoved),原因不用我说了吧。。。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

决定开始写工作日记,记录一下自己的轨迹...

常用链接

留言簿(4)

随笔分类(70)

随笔档案(71)

charles推荐访问

搜索

  •  

积分与排名

  • 积分 - 48120
  • 排名 - 455

最新评论

阅读排行榜

评论排行榜