在C中,如何從另一個數組中刪除一個數組中存在的所有字符?在C中,如何從另一個數組中刪除一個數組中存在的所有字符?
回答
聽起來像家庭作業,但這裏有一個解決方案。
製作256個條目的數組,如char set[256]
。 閱讀第一個字符串。對於每個字符c
將set[(unsigned char)c]
設置爲1. 讀取並複製第二個字符串。對於每個字符c
如果set[c]
則跳過c
。
我忘了,離開了,你必須先memset(set, 0, sizeof(set))
任何值設置爲1
你爲什麼決定選擇256?也不應該是'int'數組,而不是'char's? – 2011-03-04 03:57:40
@Andrew:標準的8位字符。我想*真的很挑剔*你需要使用預處理器宏來確定實際的字節大小。 – 2011-03-04 04:00:30
@Andrew:我使用char來節省空間。它實際上應該是一個有點向量,但這太麻煩了,而且宏是令人討厭的。 – 2011-03-04 04:01:05
如果他們是數字:
你不能「刪除」他們,但你可以將其設置爲0
(或能代表你的情況去除任何其他值),或者創建一個包含了一個新的數組不屬於兩個數組的子集的數字。
蠻力的方法是使用兩個嵌套for
循環
如果他們char
S:
你可以「刪除」他們的「轉移」 - 「交換」 - 「移動」的所有字符,不屬於左側的公共子集,然後將空終止符設置在正確的位置。 (只要你不亂用字符串文字(char * p = "lala"
)這很好)。這幾乎使得常見的char
消失。
之前,假設你想刪除A0存在A1中的字符。首先創建一個布爾數組,其中每個索引都是一個字符。恩。如果在a1中找到'c',x ['c']將成立。然後通過a0循環,檢查x數組以查看是否應該保留或拋出一個字符。如果需要,您可以創建一個元素被刪除的新數組。這應該是O(n)操作。
void remove_repeated(char* s, char* another)
{
// ... preparation with another... see other answers
for (pos = p = s; *p != 0; p++)
{
if (!macro_is_repeated(*p))
*pos++ = *p;
}
*pos = 0;
}
查看對is_repeated
零件的其他解答。
- 1. 如何從另一個數組中包含的數組中刪除數字?
- 2. 存儲從一個字符數組中的值到另一個字符數組
- 3. 如何從另一個數組中刪除數組元素?
- 4. 如何將字符數組分配給另一個字符數組中的另一個字符數組C
- 5. 從perl中刪除另一個數組中的一個數組中的元素
- 6. 數組函數從數組中刪除第一個字符
- 7. 如何從數組中刪除最後一個字符?
- 8. 如何將一個數字刪除到一個java數組中?
- 9. 從Python中的數組中刪除一個字符串
- 10. 找到另一個字符數組字符數組在C
- 11. 從另一個數組中刪除一個數組的所有元素的最有效方法是什麼?
- 12. 如何從MySQL的JSON數組中刪除一個數字?
- 13. 如何在javascript中刪除數組中所有字符串的一部分?
- 14. 選擇數組中所有值存在於另一個數組中的文檔
- 15. 刪除存在於另一個數組列表中的數組列表中的所有對象
- 16. 刪除一個項目從數組另一個數組
- 17. 一個數組中的所有數字都是<=到另一個數組
- 18. 的Javascript:如果一個數組中的所有字符串存在於另一個字符串
- 19. 如何有一個數組值,在另一個數組中找到一個值?
- 20. 如何從一個字符數組中刪除前4個字符
- 21. 如何從另一個數組中減去一個數組?
- 22. 查找數組中的字符串是否存在於另一個數組中
- 23. 將數組存儲在另一個數組中C
- 24. 從另一個數字中刪除所有9的Java方法?
- 25. 要從一個數組中不存在於另一個數組中的所有值
- 26. 如何從numpy數組列表中刪除一個numpy數組?
- 27. 如何從多維數組中刪除一個空數組php
- 28. 如何從php中刪除另一個數組?
- 29. 從陣列中刪除項目,如果他們在另一個數組存在
- 30. 如何在JavaScript數組中的一個數字後刪除7個數字?
你在說'0'終止的字符串嗎?這是功課嗎? – Apalala 2011-03-04 03:54:58
到目前爲止你有什麼? – 2011-03-04 04:01:13