## 【我解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;
}
~~~