개발/C,C++

🟡cpp 문법 - 파싱에 필요한 몇 가지 string 관련 함수들

ebang 2023. 6. 14. 23:00
반응형

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를 반환한다.

 

 

반응형