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) strstr2문자열을 할당합니다.
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문자를 소문자로 변환합니다.




반응형