[python] split VS [C] strtok - Week9-11-team03/Pintos-User-Program GitHub Wiki
split()
vs C strtok_r()
개념 비교
✅ Python 항목 | Python split() |
C strtok_r() |
---|---|---|
처리 방식 | 문자열 전체를 한 번에 잘라 리스트로 반환 | 문자열을 하나씩 잘라서 매번 반환 (반복 호출 필요) |
사용 예시 | "echo hello world".split(" ") → ["echo", "hello", "world"] |
strtok_r() 로 "echo" → "hello" → "world" 순차적으로 반환 |
내부 동작 | 문자열을 분석하여 리스트로 복사 후 새로 생성 | 원본 문자열에 \0 삽입하며 직접 수정 |
상태 관리 | 없음 (한 번에 끝남) | save_ptr 을 사용해 다음 위치 기억 |
원본 문자열 | 변경되지 않음 | 직접 변경됨 (구분자가 \0 으로 바뀜) |
사용 난이도 | 매우 직관적 (한 줄로 처리 가능) | 포인터, 반복문, 상태 유지 필요 |
메모리 처리 | 자동 메모리 관리 (가비지 컬렉터) | 수동 관리, 복사본 필요할 수 있음 |
대표 특징 요약 | 사용 편의성과 가독성이 뛰어남 | 저수준 제어 가능, 시스템 프로그래밍 적합 |
🧠 비유적 설명
설명 항목 | Python split() |
C strtok_r() |
---|---|---|
비유 | 칼로 한 번에 자르는 느낌 (쓱 베기) | 하나씩 자르고 자른 지점에 표시 붙이는 느낌 (책갈피 방식) |
처리 흐름 | 한 번에 결과 완성 → 바로 사용 | 한 조각씩 꺼내서 → 반복문으로 모아야 함 |
동작 이미지 | ["echo", "hello", "world"] 리스트를 즉시 획득 |
echo → hello → world 순차적으로 꺼내며 원본을 파괴 |