string class
<대입 및 연결>
🔵copy
size_type copy(value_type* _Ptr, size_type _Count, size_type _Off = 0) const;
std::string str;
char *cstr;
str.copy(cstr , 3, 5);
- str 문자열을 5위치에서부터 3개의 문자열을 cstr로 복사해온다.
std::string str;
str = "hello"
char cstr[128] = "123456789";
str.copy(str, 4, 0);
std::cout << cstr << std::endl;
//출력 결과 : "hell567889"
🔵assign
string& assign(const string& _str, size_t off, size_t count);
string& append(const string& _str, size_t off, size_t count);
str객체의 off 위치에서 count개수만큼만 대입하거나 연결한다.
#include <iostream>
#include <string>
using namespace std;
void main()
{
string s1("12345678901234567");
string s2("abcdefghijklmnopqrstuvwxyz");
string s3;
s3.assign(s1,3,4);
cout << s3 << endl;
s3.append(s2,10,7);
cout << s3 << endl;
}
4567
4567klmnopq
<삽입과 삭제>
🔵insert
string& insert(size_t pos, const char ptr);*
string& insert(size_t pos, const char ptr, size_t count);*
string& insert(size_t pos, const string& str);
string& insert(size_t pos, const string& str, int off, int count);
string& insert(size_t pos, int count, char ch);
void push_back(char ch);
pos : 어느위치에 삽입할 건가.
ptr : 어떤 문자열을 삽입할 건가.
count: str의 몇개 문자를 삽입할건가.
🔵erase
string& erase(size_t pos=0, size_t count=npos);
pos 위치에서 count 개수만큼의 문자를 삭제한다.
<대체함수>
🔵replace
*string& replace(size_t pos, size_t num, const char ptr);
string& replace (size_t pos, size_t len, const string& str); string& replace (iterator i1, iterator i2, const string& str);
pos 위치에서 len 개까지의 문자열을 span한다.
pos : 대체될 처음 위치
len : 대체할 문자 개수
str : 복사할 값.
pos : 끝쪽, 앞으로 num개까지의 문자열 (뒤로 세서) 을 전체적으로 ptr로 대체하되, 길이는 자동으로 관리된다.
7위치에서 4번째가 ‘일’이라서 ‘대한민국’으로 4~7이 바뀐다. (아마두)
std::string s1="독도는 일본땅";
std::cout << s1 << std::endl;
s1.replace(10,6,"대한민국");
std::cout << s1 << std::endl;
한글은 바이트수가 달라서 좀 다르다.
→ 한글은 2바이트
<탐색>
🔵find
size_t find(char ch, size_t off=0) const;
size_t find(const char ptr, size_t off=0) const;*
size_t find(const char ptr, size_t off=0, size_t count) const;*
size_t find(const string& str, size_t off=0) const;
off 에서부터 ch를 찾아서 첫번째로 찾은 인덱스를 반환한다.
못찾았을 때는 -1로 정의된 string::npos를 반환한다.
'개발 > C,C++' 카테고리의 다른 글
[C++] iterator에 대하여 (반복자) (1) | 2023.06.12 |
---|---|
[알고리즘]최소신장트리 (MST)구현하기 - C로구현하기 (2) | 2022.12.17 |
C - 인접행렬로 그래프 구현하기 (알고리즘) (0) | 2022.12.16 |
해쉬테이블 구현하기(C, C언어) (0) | 2022.12.16 |
이진트리 메소드 구현하기 (0) | 2022.12.15 |