【我解C语言面试题系列】011 删除指定字符串相应字符

删除指定字符串的相应字符 

假设字符串 "cabcdefcgchci" ,那么要求你写一个函数,把该字符串中所有的字符 ’c’ 删除掉。那么结果应该是 "abdefghi"。 

00和01是用for循环来实现的算法

char * DeleteChararcter_00(char *str,int c)

{

    char *p,*ret;

   

    for(ret= p = str;*p;p++)

    {

       if(*p == c)

           continue;

       *str++ = *p;

    }

    *str = '/0';

 

    return ret;

}

char * DeleteChararcter_01(char *str,int c)

{

    char *p,*ret;

   

    for(ret= p = str;*p;p++)

    {

       if(*p != c)

           *str++ = *p;

    }

    *str = '/0';

 

    return ret;

}

 

02和03是用while循环来实现的算法

char * DeleteChararcter_02(char *str,int c)

{

    char *p,*ret;

   

    ret = p = str;

    while(*p)

    {

       if(*p++ == c)

           continue;

       *str++ = *(p-1);

    }

    *str = '/0';

 

    return ret;

}

char * DeleteChararcter_03(char *str,int c)

{

    char *p,*ret;

   

    ret = p = str;

    while(*p)

    {

       if(*p != c)

           *str++ = *p;

       p++;

    }

    *str = '/0';

   

    return ret;

}

永不止步步 发表于02-24 11:00 浏览65206次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:305117个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号