PL/C++
[자료구조 C/C++] #2 String
poopooreum
2023. 7. 16. 19:02
반응형
✏️ String이란?
C++ STL에서 제공하는 클래스이며 이름 그대로 문자열을 다루는 클래스입니다. C보다 더 편리하게 사용할 수 있으며 문자열의 길이를 동적으로 할당할 수 있습니다.
✏️ String의 입출력
string str => 문자열 생성
cin>>str => 공백 이전까지의 문자열을 입력받습니다.
std::getline(str,cin) => 개행문자 전까지의 문자열을 입력받습니다. 주로 문장에서 단어 개수를 세는 용도로 많이 사용합니다.
std::getline(str,cin,'c') => 특정 문자 전까지의 문자열을 입력받습니다.
cout<<str => 문자열을 출력합니다.
✏️String 생성하기
string을 이용하기 위해서는 가장 먼저 <string>헤더 파일을 불러와야 합니다.
String을 생성하는 방법들은 아래와 같습니다.
string str; // 가장 기본적인 문자열 생성 방법입니다
string str = "ab"; // "ab" 로 선언된 문자열을 생성합니다. 선언과 초기화를 동시에 할 수 있습니다.
string str("ab"); // "ab" 로 선언된 문자열을 생성합니다.
string str2(str1); // str1 문자열을 복사한 str2 생성
char s[ ] = {'a', 'b', 'c', 'd', 'e', 'f'}; // string str(s) C에서의 문자열과 호환이 가능합니다.
string *str = new string("abcdef"); // new를 이용한 동적할당 방법, string은 클래스이기 때문에 new를 사용해야 합니다.
✏️String의 멤버 함수
멤버 함수 | 설명 |
str.at(index) | index위치의 문자를 반환해 줍니다. index의 유효성을 먼저 검사하기 때문에 안전하지만 시간이 조금 더 걸립니다. |
str[index] | 일반적인 문자열 접근 방식입니다. |
str.front() | 문자열 맨 첫 번째 원소를 반환합니다. |
str.back() | 문자열 마지막 원소를 반환합니다. |
str.length() | 문자열의 길이를 반환합니다. |
str.size() | length와 기능이 같습니다. |
str.capacity() | 문자열이 사용중인 메모리 크기를 반환합니다. |
str.resize(n) | string의 크기를 n으로 지정합니다. n보다 str의 길이가 짧으면 남은 공간은 빈공간으로 채우며, n이 더 작을 시에는 남은 부분은 삭제합니다. |
str.reszie(n,'a') | str의 길이보다 n이 크다면 남은 공간은 a로 채웁니다. |
str.reserve(n) | n만큼의 크기를 지정해 줍니다. |
str.empty() | str이 비어있으면 true를 리턴하고 아닐 시에는 false를 리턴해 줍니다. |
str.append(str2) | str뒤에 str2를 이어 붙입니다. |
str.append(str2,n,m) | str뒤에 str2 n번째 인덱스부터 m개의 문자를 이어 붙입니다. |
str.append(n,'a') | str뒤에 n개의 a를 붙입니다. |
str.insert(n,str) | n번째 인덱스 앞에 str를 삽입합니다. |
str.push_back(a) | str의 마지막 원소 뒤에 문자a를 이어 붙여줍니다. |
str.pop_back() | str의 마지막 원소를 제거합니다. |
str.assign(str2) | str에 str2문자열을 할당합니다. |
str.erase() | str의 모든 원소를 제거합니다 |
str.erase(n,m) | n번째 인덱스부터 m번째 인덱스까지의 문자를 제거합니다. |
str.clear() | str의 모든 원소를 제거합니다. |
str.replace(n,k,str2) | n번째 인덱스부터 k개의 문자를 str2로 대신합니다. |
✏️기타
// 문자열은 +로 이어 붙이기가 가능합니다.
// 그리고 ==을 통해 문자열이 같은지 비교가 가능하며
// 부등호를 이용하여 문자열의 순서를 비교 가능합니다.
string.find(str2); // str2가 str에 포함되어있는지를 확인하고 찾으면 해당 부분의 첫번째 index를 반환합니다.
string.find("abcd", n); // n번째 index부터 "abcd"를 찾습니다.
string.substr(); // str 전체를 반환합니다.
string.substr(n); // str의 n번째 index부터 문장 끝까지의 문자열을 반환합니다
string.substr(n, k); // str의 n번째 index부터 k개의 문자를 부분문자열로 반환합니다.
string.compare(str2); // str과 str2가 같은지를 비교한 후 같다면 0, str<str2 인 경우 음수, str>str2 인 경우 양수를 반환합니다
string.swap(str1, str2); // str1과 str2를 바꿔줍니다.
isdigit(c); // c문자가 숫자이면 true 아니면 false를 반환합니다.
isalpha(c); // c문자가 영어이면 true 아니면 false를 반환합니다.
toupper(c); // c문자를 대문자로 변환합니다.
tolower(c); // c문자를 소문자로 변환합니다.
반응형