코딩 테스트 연습 [Lv1] | 신규 아이디 추천


오랜만에 c++을 사용하려고 하니 문자열 string을 사용하는게 익숙치 않아서 string class에 있는 함수들을 찾아보며 풀었다.
[C++] string 클래스, 문자열에 대해서 (총정리) (tistory.com)
이번에 사용한 헤더와 함수들을 정리해보자면
#include <cctype> - c++
#include <ctype.h> - c언어
isupper, islower, toupper, tolower, isalpha, isdigit
대소문자 판별 함수(isupper, islower) 사용법
isupper(문자열)
islower(문자열)
대소문자 변환 함수(toupper, tolower) 사용법
toupper(문자열)
tolower(문자열)
문자/숫자 판별 함수(isalpha, isdigit) 사용법
isalpha(문자열)
isdigit(문자열)
#include <string>
erase, clear, empty, front, back
<string> 문자열 삭제 함수. string s에 대해 사용할때
- s.erase(index: int, n: it) : string
문자열의 index 위체에서 시작해서 n개의 문자 제거, string을 반환
- s.clear() : void
문자열의 모든 문자 제거 후 void 반환
-s.empty() : bool
공백인 경우 true를 반환
<string> 문자열 탐색 함수
- s.find('k') : int
s에서 문자열 k가 발견되는 첫번째 index를 반환
- s.find(pos, 'k')
s의 pos번째 이후로부터 문자열 k가 발견되는 첫번째 index를 반환
대소문자 변형 방법
1. toupper(문자열) , tolower() 사용
2. 아스키코드 이용 :
- 대문자 + 32 = 소문자
- 소문자 - 32 = 대문자
- A ~ Z : 65~90
- a~z : 97~122

이번에 날 자꾸 괴롭힌 error message... core dumped
c++ - C++ core dump 에러가 발생합니다. | Hashcode
range 밖의 index를 접근하게 될때 발생하는 error이다. 이게 뜰때마다 코드를 자세히 보고 있다보면 인덱스를 잘못 설정한게 분명히 있었음.
나의 완성된 코드는...

string 함수들을 잘 익히고 사용하면 이렇게나 효율 높고 압축적인 코드

또 충격적이였던 다른 분의 풀이 하나 더

이번엔 함수로 나눠서 풀어보겠다고 했다가 코드만 4배로 길어짐
2단계인 소문자, 숫자, 그리고 주어진 문자를 제외하고 삭제하는 함수에서 가장 애를 많이 먹었는데 이 분의 코드를 보면 정말 손쉽게 구현이 되어있다.