Contents

[C++]문자열 분리

stringstream - 공백을 기준으로 분리

1
stringstream s_stream(string a);

s_stream에 a에 있는 문장을 공백을 기준으로 분리해서 넣는다.

1
#include <sstream>

사용하기 위해서는 sstream을 include해서 사용하자.

1
2
3
4
5
6
string a = "a b c d";
stringstream s_stream(a);
string c;
while(s_stream >> c){
    cout << c << endl;
}

출력 :

1
2
3
4
a
b
c
d

strtok - 주어진 문자를 기준으로 분리

1
strtok(char* a, char* b);

a를 b를 기준으로 분리한다.

이때, b는 한 단어가 아닌 문장이어도 성립한다.

ex)

1
2
3
4
5
6
7
char a[] = "abcd1efg hijk2lmn";
char b[] = " 12";
char *token;
token = strtok(a, b);
do{
    cout << token << endl;
}while(token = strtok(NULL, b));

출력 :

1
2
3
4
abcd
efg
hijk
lmn