-
문자열 치환
=
ex)
string a = "java", b="C++"
a = b; //a= "C++"이 된다.
문자열 비교
Compare() 함수
두 문자열이 같으면 0, str보다 사전 순으로 앞에 오면 음수, 뒤에 오면 양수를 리턴한다.
문자열 연결
append()
ex) string a("i");
a.append("love");
a = "i love"
문자열 삽입
string a("I love c++");
a.insert(2, "really");
a = "I really love c++"
replace()
a.replace(2,11, "study"); // a= "I study c++"
문자열길이
문자열에 포함된 문자 개수를 말하며,
length(), size() 함수는 문자열의 길이를 리턴한다.
string객체의 내부 메모리 용량을 리턴하는 capacity()도 있다.
ex) string a("I love C++");
int length = a.length(); length = 11;
int size = a.size(); size = 11;
int capacity = a.capacity();
문자열 삭제
erase()는 문자열의 일부분을 삭제하고
clear()는 완전히 삭제한다.
ex)
string a("I love c++");
a.erase(0,7); // a의 처음부터 7개의 문자 삭제. a= "c++"로 변경
a.clear(); // a= "";
서브스트링
substr() 함수를 사용하면 문자열에서 일부분을 발췌한 문자열(서브스트링)을 얻을 수 있다.
ex) string b = "i love c++";
string c = b.substr(2,4); // b의 인덱스 2에서 4개의 문자 리턴. c = "love" 리턴
string d = b.substr(2); // b의 인덱스 2에서 끝까지 문자열 리턴. d= "love c++"
문자열 검색
find()는 문자열에서 특정 문자나 문자열을 발견하면 첫 번째 인덱스를 리턴한다.
발견하지 못하면 -1을 리턴한다.
string e = "i love love c++";
int index = e.find("love"); // e에서 love 검색. 인덱스 2 리턴
index = e.find("love", index+1); //e의 인덱스 3부터 "love" 검색. 인덱스 7 리턴
index = e.find("#c"); // e에서 "C#"을 발견할 수 없음. -1리턴
index = e.find('v', 7);
문자열에 있는 각 문자 얻기
at() 함수와 []연산자는 문자열의 특정 위치에 있는 문자를 리턴한다.
string f("i love c++");
char ch1 = f.at(7); // 문자열 f의 인덱스 7에 있는 문자 리턴.
char ch2 = f[7]; //f.at(7)과 동일한 표현
char ch3 = f.at(f.length()-1); // ch3 은 '+'
문자열의 숫자 변환, stoi()
<string>헤더파잉ㄹ 삽입
ex)
string year = "2014";
int n = stoi(year); // n은 정수 2014값을 가짐
문자 다루기
string은 문자열만 다루지 문자를 다루는 기능은 없다. 문자를 다루는 함수는 <locale> 헤더 파일에 존재한다.
<locale> 헤더 파일에 있는 topper(), isdigit(), isalpha() 함수가 있다.
'c++' 카테고리의 다른 글
std::sort() (0) 2018.11.22 vector 컨테이너 (0) 2018.11.22 cin 과 >>의 허점과 해결방법 (0) 2018.11.07 cin과 >>로 키 입력받기 (0) 2018.11.02 #include<iostream>과 std (0) 2018.11.02