stl에서 split를 이용할적에 delimiters에 언다바(_)가 들어가면
글쓴이: stypr / 작성시간: 월, 2004/04/12 - 4:10오후
제목처리 delimiters 를 _AA_이런 형식으로 주면
문자열이 다음처럼 언더바가 들어가면 언더바까지 split를 하고만는군요. 실제 split는 언더바 몇번 뒤에있는데 말입니다.
아래에서 _AA_로 split하면
aaa_bbb_ccc
ddd
이렇게 나와야하는데....이거이..
aaa
bbb
ccc
이렇게 나오는군요.
_AA_aaa_bbb_ccc_AA_ddd
find_first_of를 이용하여 pos를 엊는데 pos값의 범위가 이상하군요..흑흑..
Forums:
STL에는 split이 없습니다만? 무슨 말씀이신지?그리고 문자열
STL에는 split이 없습니다만? 무슨 말씀이신지?
그리고 문자열을 검색하려면 find 쪽이 아니라 search 쪽을 써야 할 텐데요. find는 문자열이 아니라 문자 단위로 검색할걸요.
--feanor
예전의 블루스 에켈의 책에서 봤던 거 같은데[code:1]void
예전의 블루스 에켈의 책에서 봤던 거 같은데
list대신에 vector나 다른 컨테이너 써도 되겠죠..
그리고 wstring을 고려한다면
list<wstring> r;
wstring s=L"1,2,3,4,5";
split<wstring>(s, L"," r);
이렇게도 쓸 수 있겠습니다.
Life rushes on, we are distracted
test님이 원하시는 것은split("_AA_aaa_bbb_ccc
test님이 원하시는 것은
split("_AA_aaa_bbb_ccc_AA_ddd", "_AA_", list)
해서 list에 aaa_bbb_ccc와 ddd가 들어가는 걸 원하시는 것 같은데,
yielding님이 하신 방법으로 하면 그렇게 안 됩니다.
find_first_of에 넘어가는 인자는 seperator*s* 입니다. _AA_가 문자열
_AA_를 나타내는 것이 아니라, _, A, A, _ 이 네 글자 중 하나가 나오면 split
하라는 뜻으로 해석됩니다.
--feanor
[code:1]// split.cc#include <io
$ g++ -o split split.cc
$ ./split
aaa bbb
aaa_bbb_ccc ddd
$
잘 비교해보세요. ^^
--feanor
질문을 정확히 이해하지 않고 답을 달았군요 feanor의 깔끔한 답에 한
질문을 정확히 이해하지 않고 답을 달았군요 feanor의 깔끔한 답에 한표 ^^;
Life rushes on, we are distracted
묵은 글이지만,,,,
strtok의 경우처럼 separator를 기준으로 그 앞에 토큰까지 취하고 싶다면..
///////////////////
///////////////////
aa
bb
cc
dd
ee
Engineer at Alticast
댓글 달기