문자열 String
라이브러리
#include <string>
문자열 생성
string str;
str = "abv;
string str = "abcdef";
string str("abcd");
string str2(str1);
string *str = new string("abc");
입출력
string str;
cin >> str;
getline(cin, str);
getline(cin, str, ',');
cout << str;
연산자 활용
- 문자열 비교:
<, >, ==
이용하여 사전 순서를 비교하거나 같은지 확인 가능
- 문자열 연결:
+
이용하여 두 문자열 연결
- 문자열 대입:
=
이용하여 대입
ex. string str = str1 + str2;
string 클래스 멤버 함수
함수명 | 제목2 |
---|
str.at(index) | index위치의 문자 봔한(유효 범위 체크 O) |
str[index] | index위치의 문자 봔한(유효 범위 체크 X->at 보다 접근 빠름) |
str.front() | 문자열 가장 앞 문자 반환 |
str.back() | 문자열 가장 뒤 문자 반환 |
함수명 | 제목2 |
---|
str.empty() | 빈 문자열인지 확인 |
str.size() | 문자열 길이 반환 |
str.length() | 문자열 길이 반환 |
str.capacity() | 문자열이 사용중인 메모리 크기 반환 |
str.resize(n) | 문자열의 크기를 n으로 만듦 (삭제하거나 빈공간으로 채워서) |
str.resize(n, 'a') | 문자열의 크기를 n으로 만듦 (빈공간을 'a'로 채움) |
함수명 | 제목2 |
---|
str1.append(str2) | str1뒤에 str2 붙임 |
str1.append(str2, n, m) | str1뒤에 str2의 n번째 인덱스부터 m개의 문자를 이어 붙임 |
str.append(n, 'a') | str 뒤에 n개의 'a'를 이어 붙임 |
str.insert(n, str2) | n번째 index 앞에 str2 문자열을 삽입 |
str.replace(n, k, str2) | n번째 index부터 k개의 문자를 str2로 바꿈 |
str.clear() | 저장된 문자열을 모두 삭제 |
str.erase() | 저장된 문자열을 모두 삭제 |
str.erase(n, m) | n번째 index부터 m개의 문자를 지움 |
str.erase(n, m) (iterator) | n~m index의 문자열을 지움 (n과 m은 iterator) |
str.push_back(c) | str의 맨 뒤에 c 문자 push() |
str.pop_back() | str의 맨 뒤의 문자 pop() |
str.assign(str2) | str에 str2 문자열 할당 (변수 정의와 동일) |
- 기타 함수
| 함수명 | 제목2 |
| --- | :--- |
| str.find("abc") | "abc"가 str에 포함되어있는지를 확인 후 찾으면 해당 부분의 첫번째 index를 반환 |
| str.find("abcd", n) | n번째 index부터 "abcd"를 find |
| str.substr() | str 전체를 반환 |
| str.substr(n) | str의 n번째 index부터 끝까지의 문자를 부분문자열로 반환 |
| str.substr(n, k) | str의 n번째 index부터 k개의 문자를 부분문자열로 반환 |
| str1.compare(str2) | str1과 str2가 같은지를 비교. 같다면 0, str1<str2 인 경우 음수, str1>str2 인 경우 양수를 반환 |
| swap(str1, str2) | str1과 str2를 바꿈 (reference 교환) |
| isdigit(c) | c 문자가 숫자이면 true, 아니면 false를 반환 |
| isalpha(c) | c 문자가 영어이면 true, 아니면 false를 반환 |
| toupper(c) | c 문자를 대문자로 변환 |
| tolower(c) | c 문자를 소문자로 변환 |
참고
https://rebro.kr/53