# Language/C++

[C++] string

string





C++에서 문자열을 다루는 방법 2가지


  • C-스트링
  • string 클래스



C스트링은 C언어에서 사용해오던 전통적인 문자열, '\0' 으로 끝나는 문자 배열을 문자열로 취급하는 방법


string은 C++ 표준 라이브러리에서 제공하는 클래스, 문자열을 객체로 다룸






string 클래스를 사용하기 위해서는,


#include <string>

using namespace std;


위의 코드가 필요합니다.








C-스트링은 초기에 할당 받은 메모리 크기 이상의 문자열을 저장할 수 없기 때문에, 개발자의 프로그램 작성에 어려움.


string 클래스는 문자열의 크기에 맞추어 스스로 메모리 크기를 조절하므로 매우 편리함!








다양한 string 객체의 사용




string str; // 문자열 초기화

string name("King");

string newName(name);


string *pStr = new string("C++"); // 동적 생성

delete pStr; // 반환


name.append("Piggy"); // 문자열 잇기

name = name + " Love";


getline(cin, name); // 문자열 입력받기

cout << name << endl; //문자열 출력하기







자주 쓰는 함수




string& insert(int pos, string&str) : 문자열의 pos 위치에 str 삽입

string& replace(int pos, int n, string& str) : 문자열의 pos 위치부터 n개의 문자를 str 문자열로 대체


int size() : 문자열의 길이 리턴

int length() : 문자열의 길이 리턴


bool empty() : 문자열의 크기그 0이면 true, 아니면 false 리턴


char& at(int pos) : pos 위치의 문자 리턴


int find(string& str) : 문자열의 처음부터 str을 검색하여 발견한 처음 인덱스 리턴, 없으면 -1 리턴

int find(string& str, int pos) : 문자열의 pos 위치부터 str을 검색하여 발견한 처음 인덱스 리턴, 없으면 -1 리턴


int compare(string& str) : 문자열과 str을 비교하여 같으면 0, 사전 순으로 현재 문자열이 앞에 오면 음수, 뒤면 양수 리턴


string substr(int pos, int n) : pos 위치부터 n개 문자를 새로운 서브스트링으로 생성, 리턴


void(string& str1, string& str2) : str1과 str2 교환


void clear() : 문자열 비우기


stoi : 문자열을 숫자로 바꿈








유용하셨다면 공감 버튼 ↓ 눌러주세요! 


728x90