第一種方法:遍歷原陣列,在待刪陣列裡遍歷是否刪除該元素
char
*removechars
(char str,
const
char remove)
}if(state)
temp[count++
]= str[i]
; state = true;
i++;}
temp[count]
='\0'
;return temp;
}
第二種方法:時間複雜度o(n),先把待刪陣列元素對映到ascii碼陣列上,直接在遍歷原陣列,看遍歷到的元素是否在ascii碼陣列上(省略了待刪陣列的遍歷),接下來是重點(刪除原陣列中包含的待刪陣列中的元素):用兩個指標(這裡指數組下標,src和dst分別指向當前遍歷元素和某字元最終移動到的位置),src肯定是一直前進的,dst在當前元素不在待刪陣列中時前進。
void
removechars1
(char str,
const
char remove)
for(i =
0; remove[i]
!='\0'
;++i)
// do
// src++;
// }while (str[src]!='\0');
while
(str[src]
!='\0'
) src++;}
str[dst]
='\0'
;}
在字串中刪除特定的字元(字串)。
題目 輸入兩個字串,從第一字串中刪除第二個字串中所有的字元。例如,輸入 they are students.和 aeiou 則刪除之後的第乙個字串變成 thy r stdnts.其實這類題有個特點,字串中的字元分為兩類,就可以聯想快速排序裡的將當前的陣列分為左右兩組,其中左邊的數字小於某值,右邊的數...
在字串中刪除特定的字元
題目 輸入兩個字串,從第一字串中刪除第二個字串中所有的字元。例如,輸入 they are students.和 aeiou 則刪除之後的第乙個字串變成 thy r stdnts.分析 這是一道微軟面試題。在微軟的常見面試題中,與字串相關的題目佔了很大的一部分,因為寫程式操作字串能很好的反映我們的程式...
在字串中刪除特定的字元
63.在字串中刪除特定的字元。題目 輸入兩個字串,從第一字串中刪除第二個字串中所有的字元。例如,輸入 they are students.和 aeiou 則刪除之後的第乙個字串變成 thy r stdnts.string firststr,secondstr int m firststr.size ...