본문 바로가기

카테고리 없음

문자열을 자르고 싶다면 C++

문자열을 자를 때는 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 배열 출력해보면 다 잘려 있다.

 

 

 

참고한 사이트

 

https://kamang-it.tistory.com/entry/cstring%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%9D%B4%EC%95%BC%EA%B8%B0-2-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84-%ED%8A%B9%EC%A0%95-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EC%9E%90%EB%A5%B4%EA%B8%B0-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%86%A0%ED%81%AC%EB%82%98%EC%9D%B4%EC%A7%95

 

[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