문자열을 자를 때는 strtok() 함수를 사용한다.
근데 이친구는 C++에서 string 클래스 자체에서는 사용할 수가 없다.
그래서 C형태의 배열 char*[]형태로 바꿔놓고 사용해야한다.
1. 문자열 하나 입력받는다.
2. new를 이용해서 복사할 임시 버퍼를 만들어 놓는데
이 버퍼가 char*[] 형태로 만들어야 한다.
3. strcpy() 와 c_str() 을 이용해서 문자열을 버퍼에 복사한다.
4. strtok() 함수의 경우 "-"를 기준으로 자른다고 하면
처음부터 -까지 자르고 그 시작주소를 가지게 된다.
5. tok가 nullptr이 아닐때까지 반복수행한다.
string 배열의 처음부터 string(tok)를 저장한다.
tok = strtok(nullptr, "-");
이건 다음 문자열을 잘라서 포인터를 반환한다는 뜻이다.
6. string 배열 출력해보면 다 잘려 있다.
참고한 사이트
[c++][string]문자열 이야기 (2) - 문자열을 특정 문자열로 자르기, 문자열 토크나이징
c++에서 문자열을 다루는 일은 매우 짜증나는 일이다. string클래스는 매우 좋은 클래스이나 치명적인 문제점이 있는데 c style의 문자열(cstring)과 중복되는 부분을 손을 안 본 곳이 많다는 점이다. �
kamang-it.tistory.com
https://dojang.io/mod/page/view.php?id=376
C 언어 코딩 도장: 45.1 문자를 기준으로 문자열 자르기
45 문자열 자르기 지금까지 문자열을 복사하거나 붙이는 방법을 알아보았습니다. 이번에는 주어진 문자열을 자르는 방법을 알아보겠습니다. 참고로 문자열 자르기는 포인터를 이용하는 방식이�
dojang.io