C에서 한 배열의 모든 문자를 다른 배열에서 제거하는 방법은 무엇입니까?C에서 한 배열에있는 모든 문자를 다른 배열에서 제거하는 방법은 무엇입니까?
답변
소리가 숙제와 비슷하지만 해결책이 있습니다.
char set[256]
과 같이 256 개 항목의 배열을 만듭니다. 첫 번째 문자열을 읽습니다. 각 문자 c
에 set[(unsigned char)c]
을 1로 설정하십시오. 두 번째 문자열을 읽고 복사하십시오. 각 문자의 경우 c
set[c]
이면 c
을 건너 뜁니다.
memset(set, 0, sizeof(set))
먼저해야 1.
왜 당신은 256을 골랐습니까? 또한'char'가 아닌'int'의 배열이 될까요? –
@Andrew : 표준 8 비트 char. 난 정말 까다 롭다 고 생각합니다 * 실제 바이트 크기를 결정하기 위해 전 처리기 매크로를 사용해야합니다. –
@ Andrew : 공간을 절약하기 위해 char을 사용합니다. 그것은 실제로 비트 벡터가되어야하지만 너무 많은 번거 로움과 매크로가 더러운 있습니다. –
그들은 숫자 인 경우 :
당신은 그들을 "제거"할 수는 없지만 0
로 설정할 수 있습니다 (또는 다른 귀하의 경우 제거를 나타낼 수있는 값) 또는이 포함 된 새 배열을 만들 두 배열의 하위 집합에 속하지 않는 숫자.
무력 방법은 char
의 경우 두 개의 중첩 for
루프
을 사용하는 것입니다 : - "스와핑"-
당신이 그들을 "제거"할 수는 "변화"에 의해 모든 문자를 "이동"하는 왼쪽의 공통 하위 집합에 속하지 말고 올바른 위치에 널 종결자를 설정하십시오. (당신이 문자열 리터럴 (char * p = "lala"
)을 엉망으로 만들지 않는 한 이것은 괜찮습니다). 이렇게하면 흔히 사라지는 공통점이있는 char
명이됩니다.
에 그 값 중 하나를 설정하기 전에 당신은 A1에 존재 A0에서 문자를 제거 할 가정 밖으로 떠났다. 먼저 각 인덱스가 문자 인 부울 배열을 만듭니다. 전의. x [ 'c']는 a1에서 'c'가 발견되면 참이됩니다. 그런 다음 a0을 반복하면서 x 배열을 검사하여 char가 유지되거나 던져 지는지 확인합니다. 필요한 경우 요소가 제거 된 새 배열을 만들 수 있습니다. 이것은 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. ActionScript 배열에서 모든 요소를 제거하는 가장 좋은 방법은 무엇입니까?
- 3. sed로 모든 다른 줄을 제거하는 방법은 무엇입니까?
- 4. 배열에서 중복 된 값만 제거하는 방법은 무엇입니까?
- 5. PowerShell에서 배열에서 항목을 제거하는 방법은 무엇입니까?
- 6. 다른 배열에서 배열을 만드는 방법은 무엇입니까?
- 7. X보다 작은 배열에서 정수를 제거하는 방법은 무엇입니까?
- 8. 바이트 배열에서 null을 제거하는 방법은 무엇입니까?
- 9. 영문자가 아닌 문자를 제거하는 방법은 무엇입니까?
- 10. 문자열에서 특정 문자를 제거하는 방법은 무엇입니까?
- 11. id와 title의 특수 문자를 제거하는 방법은 무엇입니까?
- 12. JS의 문자열에서 불량 문자를 제거하는 방법은 무엇입니까?
- 13. C에서 특수 문자를 삭제하는 방법은 무엇입니까?
- 14. sqlite3 데이터베이스에서 문자열에서 문자를 제거하는 방법은 무엇입니까?
- 15. DB에서 16 진수 문자를 제거하는 방법은 무엇입니까?
- 16. html 페이지에서 이러한 문자를 제거하는 방법은 무엇입니까?
- 17. C에서 문자열에서 문자를 제거
- 18. 한 번에 일반 목록의 모든 null 요소를 제거하는 방법은 무엇입니까?
- 19. 배열에서 연결된 모든 숫자를 찾는 방법은 무엇입니까?
- 20. Regexp : 다른 regexp를 제외한 모든 것을 제거하는 방법은 무엇입니까?
- 21. java의 문자 배열에서 대체 문자를 얻는 방법은 무엇입니까?
- 22. SQL에서 자식이없는 모든 병렬을 제거하는 방법은 무엇입니까?
- 23. 레일 - 데이터베이스의 데이터에서 슬래시 문자를 제거하는 방법은 무엇입니까?
- 24. Objective-C의 다른 배열에있는 객체를 기반으로 배열을 필터링하는 방법은 무엇입니까?
- 25. JQuery를 사용하여 텍스트 상자에서 한 번에 한 문자를 제거하는 방법
- 26. c에서 비밀번호를 마스크하는 방법은 무엇입니까? C에서
- 27. preg_replace를 사용하여 모든 HTML을 제거하는 방법은 무엇입니까?
- 28. 배열의 모든 요소에서 문자열을 제거하는 방법은 무엇입니까?
- 29. Label에서 모든 패딩을 제거하는 방법은 무엇입니까?
- 30. 키가 'index'와 같은 경우 PHP 배열에서 요소를 제거하는 방법은 무엇입니까?
'0'종료 문자열에 대해 이야기하고 있습니까? 이 숙제가 있니? – Apalala
지금까지 무엇을 가지고 계십니까? –