반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- qsort
- template
- connected_component
- Critical_Path_Analysis
- 자료구조
- sstream
- 백준
- red-black tree
- Algorithm
- c++
- Articulation_Point
- singly Linked List
- list
- 문법
- sort
- class_template
- 13305
- 알고리즘
- '0'
- 예제
- 5397
- Pair
- STL
- function_template
- deletion
- 총정리
- 구현
- Heap
- Biconnected_Component
- data_structure
Archives
- Today
- Total
- Today
- Total
- 방명록
어제의 나보다 성장한 오늘의 나
[c++] 문자열 자르기 / 쪼개기 (Substr , Sstream , Strtok) 총정리 및 예제 본문
반응형
1) s.substr(시작 위치 , 문자열의 길이)
string s = "0123456789";
string subs1 = s.substr(2,5); // subs1 = "23456"
string s = "0123456789";
string subs1 = s.substr(5); // subs1 = "56789"
string s = "0123456789";
string subs1 = s.substr(); // subs1 = "0123456789"
시작 위치와 문자열의 길이를 입력 받아서 문자열을 자른다.
숫자 하나만 집어넣으면 시작 위치로 인식되어 시작 위치 부터 끝까지로 문자열을 자른다.
아무 것도 넣지 않으면 s 전체가 복사 됨.
find 함수와 함께 사용
string s = "0123456789";
string subs1 = s.substr(s.find('6')); // subs1 = "6789"
string s = "0123456789";
string subs1 = s.substr(s.find('6'),2); // subs1 = "67"
2) stream을 이용한 쪼개기
헤더파일
#include <sstream>
#include <vector> // 벡터에 담을 거라서.
string s = "012 34567 89";
istringstream ss (s);
string subs1; // temp역할하는 substr 변수 -> 012 , 34567 , 89
vector<string> v;
while(getline(ss,subs1,' ')){
v.push_back(subs1); // v = {"012" , "34567" , "89"}
}
getline ( Stream 이름 , temp 변수 , 자를 기준 문자열)
반응형
3) c의 strtok 함수 사용
헤더파일
#include <string.h>
strtok( 자를 문자열 , 기준 문자 )
char str[] = "a b c d e f";
char* p_str = strtok(str," ");
while(p_str != NULL){
cout << p_str << ' ';
p_str = strtok(NULL," ");
}
//출력 : a b c d e f;
기준 문자는 무조건 "" 로 감싸져야 한다. 위의 경우 띄어쓰기를 기준 문자로 잡은 것.
기준 문자 여러 개 설정
char str2[] = "a-b,c:d e-f";
char* p_str2 = strtok(str2,",- :");
while(p_str2 != NULL){
cout << p_str2 << ' ';
p_str2 = strtok(NULL , ",- :");
}
//출력 : a b c d e f
반응형
'c++ > 문법' 카테고리의 다른 글
[c++][자료구조] Map STL 정리 및 예제 (0) | 2022.02.20 |
---|---|
[c++] 문자열 찾기 ( <algorithm> find , <string> find) 총정리 및 예제 (2) | 2022.02.19 |
[c++][자료구조] Vector / List 비교 및 STL 정리 (0) | 2022.02.13 |
[c++] 이진 탐색 ( lower_bound , upper_bound ) 사용 및 예제 (0) | 2022.02.13 |
[C++] Unique 함수 정리 및 예제 (0) | 2022.02.13 |
Comments