728x90
반응형
1. string 처리
1. substr
string s;
s.substr(0,1);
s.substr(시작 인덱스, 끝 인덱스) 끝 인덱스까지 잘린다.
2. 아스키 코드
A = 65번, Z = 90번, a = 97번 z = 122번
3. find
string s = "i like coding";
cout << s.find("k") << "\n"; // 4
cout << s.find("z") << "\n";
//문자열을 찾지 못하는 경우는 npos를 반환한다.
if (s.find("z") == string::npos) {
cout << "npos";
} // npos
4. replace
string s = "abcde";
string ch = "www";
//s.replace(문자열 시작 인덱스, 길이, 치환할 문자열);
cout << s << "\n"; // abcde
cout << s.replace(1,3, ch); // awwwde;
응용
특정 문자열을 기존 문자열에서 찾아서 변경
string s = "i like coding";
string find_s = "coding";
string re_str = "math";
s.replace(s.find(find_s), find_s.length(), re_str); // i like math
5. atoi, stoi, to_string
1. atoi
- 숫자에 해당하는 문자열을 int로 바꿔주는 역할 만약 숫자가 아닌 문자가 들어있다면 0을 반환한다.
- 숫자가 먼저 나오고 문자가 나오는 경우에는 앞에 있는 문자만 변환하여 보여준다.
string s = "1234";
cout << atoi(s.c_str()); // 1234
string s2 = "1234코딩";
cout << atoi(s2.c_str()); //1234
string s3 = "코딩1234";
cout << atoi(s3.c_str()); // 0
//c_str()을 사용하여 raw_pointer를 넘겨주어야한다.
2. stoi
string s2 = "12345";
cout << stoi(s2) << "\n"; //12345
cout << atoi(s2.c_str()) << "\n";//12345
string s3 = "s1234";
cout << atoi(s3.c_str()) << "\n";//0
cout << stoi(s3) << "\n"; // 에러
3. to_string()
int num = 10;
string str = to_string(num);
cout << str << "\n"; // 10
6. erase
string id = "simjeongho0";
id.erase(id.end()-1);
cout<<id <<"\n"; // simjeongho
응용
#include <algorithm>
#incldue <string>
string id = "simjeongho0";
char remove[4] = { 's','j' , 'm' , '0' };
cout << id << "\n";//simjeongho0
for(char a : remove) {
id.erase(remove(id.begin() , id.end() , a) , id.end());
}
remove 배열 안에 들어있는 문자들을 모두 지울 수 있다. algorithm헤더에 존재하는 remove함수와 같이 사용한다.
응용2
string new_id = "12323456778";
sort(new_id.begin(), new_id.end());
cout << new_id << "\n"; // 12233456778
new_id.erase(unique(new_id.begin(), new_id.end()) , new_id.end());
cout << new_id << "\n";//12345678
algorithm헤더의 sort와 unique함수를 이용하면 erase 함수와 더불어 중복된 값을 삭제한 후 정렬할 수 있다.
728x90
반응형
'c++' 카테고리의 다른 글
[c++] Huffman Algorithm - 파일 압축 알고리즘 (0) | 2022.04.28 |
---|---|
c++ vector (0) | 2022.03.16 |
heap sort (0) | 2022.03.15 |
DoubleLinkedList (0) | 2022.03.13 |
자료구조 stack을 이용한 문제 풀이 1(postfix) (0) | 2021.06.18 |
댓글