string
: C++ 스타일 문자열 처리 C++ 라이브러리string.h
: C 스타일 문자열 처리 C 라이브러리 (ex: strcpy
,strlen
)cstring
: C 스타일 문자열 처리 C++ 라이브러리 (string.h 와 동일)<string>
헤더 파일을 추가해주어야 한다. string str; // 문자열 생성
cin >> str; // 공백(space) 이전까지의 문자열을 입력받는다.
getline(cin, str); // '\n' 이전까지의 문자열, 즉 한 줄을 통째로 입력받는다. (공백 포함)
getline(cin, str, 'a') // 'a' 문자 이전까지의 문자열을 입력받는다. getline(cin, str, '\n') == getline(cin, str)
cout << str; // 문자열을 출력한다.
string str; // 빈 문자열 str 생성
string str = "abcdef"; // "abcdef" 로 선언된 str 생성
string str("abcdef"); // "abcdef" 로 선언된 str 생성
string str2(str1); // str1 문자열을 복사한 str2 생성
char s[ ] = {'a', 'b', 'c', 'd', 'e', 'f'}; string str(s); // C에서의 문자열과 호환 가능
string *str = new string("abcdef"); // new를 이용한 동적할당
str.at(index)
: index 위치의 문자 반환. 유효한 범위인지 체크 Ostr[index]
: index 위치의 문자 반환. 유효한 범위인지 체크 X. 따라서 at 함수보다 접근이 빠름str.front()
: 문자열의 가장 앞 문자 반환str.back()
: 문자열의 가장 뒤 문자 반환str.length()
: 문자열 길이 반환str.size()
: 문자열 길이 반환 (length와 동일)str.capacity()
: 문자열이 사용중인 메모리 크기 반환str.resize(n)
: string을 n의 크기로 만듦. 기존의 문자열 길이보다 n이 작다면 남은 부분은 삭제하고, n이 크다면 빈공간으로 채움str.resize(n, 'a')
: n이 string의 길이보다 더 크다면, 빈 공간을 'a'로 채움str.shrink_to_fit()
: string의 capacity가 실제 사용하는 메모리보다 큰 경우 낭비되는 메모리가 없도록 메모리를 줄여줌str.reserve(n)
: size = n만큼의 메모리를 미리 할당해줌str.empty()
: str이 빈 문자열인지 확인str.append(str2)
: str 뒤에 str2 문자열을 이어 붙여줌 ('+' 와 같은 역할)str.append(str2, n, m)
: str 뒤에 'str2의 n index부터 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(n, m)
: n번째 index부터 m개의 문자를 지움str.erase(n, m)
(iterator): n~m index의 문자열을 지움 (n과 m은 iterator)str.erase()
: clear와 같은 동작str.pop_back()
: str의 맨 뒤의 문자를 제거str.find("abcd")
: "abcd"가 str에 포함되어있는지를 확인. 찾으면 해당 부분의 첫번째 index를 반환str.find("abcd", n)
: n번째 index부터 "abcd"를 findstr.substr(n)
: str의 n번째 index부터 끝까지의 문자를 부분문자열로 반환str.substr(n, k)
: str의 n번째 index부터 k개의 문자를 부분문자열로 반환str.compare(str2)
: str과 str2가 같은지를 비교. 같다면 0, str<str2 인 경우 음수, str>str2 인 경우 양수를 반환toupper(c)
: c 문자를 대문자로 변환tolower(c)
: c 문자를 소문자로 변환to_string()
string
header include 해야 함.std::string str(<char []>)
char arr[] = { 'J', 'O', 'U', 'R', 'N', 'A', 'L', 'D', 'E', 'V' };
int size_arr = sizeof(arr) / sizeof(char);
string str = "";
str = arr;
boost::lexical_cast<std::string>()
출처:
- https://rebro.kr/53 [Rebro의 코딩 일기장:티스토리]
- https://blockdmask.tistory.com/334