실습 개요
이번 실습에서는 5장에서 학습한 배열과 문자열 관련 개념을 종합적으로 적용하여 실제 문자열 처리 프로그램을 작성해 보겠습니다.
이를 통해 1차원 배열, 다차원 배열, C 스타일 문자열, 그리고 std::string 클래스의 사용법을 실제로 적용해 볼 수 있습니다.
프로그램 요구사항
다음 기능을 가진 문자열 처리 프로그램을 작성하세요.
- 사용자로부터 여러 문자열을 입력받아 저장
- 저장된 문자열들을 알파벳 순으로 정렬
- 특정 문자열 검색 기능 구현
- 모든 문자열을 대문자로 변환하는 기능 구현
- 가장 긴 문자열과 가장 짧은 문자열 찾기
프로그램 구조
주요 함수 구현
문자열 입력 받기
이 함수는 사용자로부터 여러 줄의 문자열을 입력받아 vector에 저장합니다. 빈 줄이 입력되면 입력이 종료됩니다.
문자열 정렬
이 함수는 std::sort 알고리즘을 사용하여 문자열들을 알파벳 순으로 정렬합니다.
문자열 검색
이 함수는 std::find 알고리즘을 사용하여 특정 문자열을 검색합니다.
대문자 변환
이 함수는 모든 문자열의 각 문자를 대문자로 변환합니다.
가장 긴/짧은 문자열 찾기
이 함수는 std::minmax_element 알고리즘을 사용하여 가장 짧은 문자열과 가장 긴 문자열을 찾습니다.
문자열 출력
이 함수는 저장된 모든 문자열을 출력합니다.
메인 함수 구현
실행 예시
실습
- 문자열 내 특정 문자의 개수를 세는 기능을 추가하세요.
- 문자열을 역순으로 정렬하는 옵션을 구현하세요.
- 중복된 문자열을 제거하는 기능을 구현하세요.
- 각 문자열의 길이를 함께 출력하는 기능을 추가하세요.
- 문자열 일부를 다른 문자열로 치환하는 기능을 구현하세요.
학습 포인트
- std::vector와 std::string의 조합 사용
- STL 알고리즘(std::sort, std::find, std::minmax_element)의 활용
- 범위 기반 for 루프의 사용
- 람다 함수의 기본적인 사용
- 문자열 처리 함수들의 실제 적용
주의사항
- 입력 검증의 중요성 : 사용자 입력에 대한 적절한 검증을 수행하세요.
- 메모리 관리 : 대용량 데이터 처리 시 메모리 사용에 주의하세요.
- 예외 처리 : 프로그램의 안정성을 위해 적절한 예외 처리를 추가하세요.
- 성능 고려 : 대량의 문자열을 처리할 때 성능 최적화 방법을 고민해보세요.
참고자료